gpt4 book ai didi

c++ - 字符数组和指针的基本混淆

转载 作者:太空宇宙 更新时间:2023-11-04 08:25:13 25 4
gpt4 key购买 nike

我是指针的初学者。完成整数数组和指针后,我转向字符数组和指针。我期待相同的结果,但它很奇怪。

int main() {    
char chararray[20]="Char Array";
void printarray(char *);
void printarraydirect(char * );

printf("Passing chararray to funtion printarray\n");
printarray(chararray);
printf("Printing directly as c in printarraydirect function");
printarraydirect(chararray);

return 0;
}

void printarray(char *c){
int i=0;
//while(c[i]!= ' ')-----------------------> checks for empty space
while(c[i]!='\0')
{
printf("%c",c[i]);
i++;
}
printf("\n");
}



void printarraydirect(char * c){
printf("Printing c-------------->");
printf("%s\n",c);
int i=0;
printf("Printing c[i]-------------->\n");
// shows error here , if so why didnt it show me error in printarray function. and why didnt it print the whole array when printed c in printarray function..

printf("%s\n" c[i]);

}

最佳答案

首先,您在 printf("%s\n"c[i]); 行中缺少一个逗号。其次,c[i] 是单个 char(数组的元素类型),因此 %s 格式不正确 - 它应该是 %c 打印单个字符。或者,如果您希望从该点开始打印整个字符串,则需要传递该元素的地址 (&c[i]),但在这种情况下与 c 相同 因为 i 为零。

关于c++ - 字符数组和指针的基本混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30841663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com