关于 C++数组赋值的简单问题
charstr1[]="ABCD";charstr2[10]="123456";for(inti=0;str2[i]=str1[i];i++)后,数组str2的字符串是—...
char str1[]="ABCD";char str2[10]="123456";
for(int i=0;str2[i]=str1[i];i++)后,数组str2的字符串是——
答案是ABCD,可是我觉得不对啊 ,str1只有5个元素不是吗(隐藏了一个\0)
然后一个个的赋值给str2,所以只有前5个改变了,但是第六个元素6依然是不变的
那么应该是ABCD\06啊怎么会这样啊 展开
for(int i=0;str2[i]=str1[i];i++)后,数组str2的字符串是——
答案是ABCD,可是我觉得不对啊 ,str1只有5个元素不是吗(隐藏了一个\0)
然后一个个的赋值给str2,所以只有前5个改变了,但是第六个元素6依然是不变的
那么应该是ABCD\06啊怎么会这样啊 展开
展开全部
退出循环的条件是str2[i] 被赋值为0,的确是ABCD\06,但是一般而言,C的字符串是只是到第一个0字符为止,后面的不算了
追问
\0和0并不一样吧。当i=4的时候,str1='\0',如果赋值给str2,然后循环结构判断的时候,是不是说明str2[4]==0,然后就不循环了?可是这样的话str2的字符串不应该是ABCD56了吗
追答
好好读读书吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询