作业帮 > 综合 > 作业

while(*a++=*b++)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 10:00:41
while(*a++=*b++)
while(*a++=*b++) 这不是复制两个字符串的吗
为什么 需要一个左值?应该怎么写?
这个应该是这样吧
while(*(++a)=*(++b));

先赋值,在自加,最后连\0的结束符也赋值进去
这个就是利用了结束符\0就是0的原理
当吧结束符赋值进去后,那么就是判断*a的值,如果是0了,就退出循环
要是先自加,在赋值,那么第一个字符时赋值不进去的
再问: --------------------Configuration: Cpp1 - Win32 Debug-------------------- Compiling... Cpp1.cpp C:\Documents and Settings\Administrator\Cpp1.cpp(8) : error C2105: '++' needs l-value C:\Documents and Settings\Administrator\Cpp1.cpp(8) : error C2105: '++' needs l-value
再答: 只看这一句的话,是没啥问题 但是ab是什么东西我不知道,ab是数组名还是指针? 数组名的话,不能这样操作,数组名是不能自加的,数组名不可以变化,虽然相当于指针,但不是指针 指针可以
再问: 的确 声明的是数组 请问应该申请为 指针吗 这样对不对 char *a="123123"; char *b="123123"; 可是这样的话 不是不让修改内容了吗tangram_guid_1358218350921
再答: while(*a++=*b++) 一般这一句用在子函数中,strcpy好像就是这么编写的 strcat连接函数好像也有这么一句 你可以用char *a="123123";char *b="123123";这样申请, 在申请两个指针pq分别执行ab不就可以了???