C语言 cHAR型 数组 char str[10]={0}; 我在之后用str={0};为什么是语法错误

2024-12-03 01:39:09
推荐回答(3个)
回答1:

char str[10]={0};/*创建一个包含十个字符的char数组,意思就是一个包含十个字符的字符串*/

str={0};/*看来你还没有学到指针那一章吧,str是一个常量指针,不能被修改,而且你用给数组赋值的方式给一个指针赋值,更加错上加错*/

注:数组的名字其实就是指向数组第一个元素的指针。
str[10]是数组
str是指向str[0]的指针

回答2:

str 是数组名,str={0}; 错。
可以用 循环语句,一个一个赋值,或用 memset 总清。
例如:
char str[10]="abcde6789"; //初始化字符数组
int i;
printf("1: %s\n",str); // 按字符串打印内容
str[0]='\0'; // 清字符串的方法
printf("2: %s\n",str); // 按字符串打印内容,清了
printf("3: ");
for (i=0;i<10;i++) printf("%c",str[i]); // 按 1个个字符 打印内容,没清干净
memset (str,'\0',10); // 用 它
printf("\n4: ");
for (i=0;i<10;i++) printf("%c",str[i]); // 清干净啦

回答3:

str是这个数组的首地址,怎么可以赋值?
应该这样str[10]={'0'};0是字符,加引号,这样表示str[0]='0',其它的都是空