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

 我来答
sphuang
2013-02-08 · TA获得超过3391个赞
知道小有建树答主
回答量:1318
采纳率:0%
帮助的人:1316万
展开全部
char str[10]={0};/*创建一个包含十个字符的char数组,意思就是一个包含十个字符的字符串*/

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

注:数组的名字其实就是指向数组第一个元素的指针。
str[10]是数组
str是指向str[0]的指针
追问
那,我要把str这个数组的元素全部恢复0x00怎么做,除了循环一个个赋值,有没有j简单一些的?
追答
//循环单独修改。
//以下是C代码,C++的话应该避免使用char数组而应该用string,省事儿很多
#include
int main()
{
char str[10] = {0};
int i;
for( i = 0; i < sizeof(str); i++)
str[i] = '0x00';
/*上面就是循环修改,不过str[10]没有以‘\0’结束,你要注意。*/
return 0;
}
金色潜鸟
2013-02-08 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5729万
展开全部
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]); // 清干净啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jinkehouse
2013-02-08 · TA获得超过312个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:152万
展开全部
str是这个数组的首地址,怎么可以赋值?
应该这样str[10]={'0'};0是字符,加引号,这样表示str[0]='0',其它的都是空
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式