请教关于程序的问题
#include <stdio.h>#include <string.h>
void main()
{
char a[80]="AB",b[80]="LMNP";
int i=0;
strcat(a,b);
while(a[i++]!='\0')
b[i]=a[i];
puts(b);
}
为什么结果是LBLMNP而不是ABLMNP?
当第八行改成 for( ;a[i]!='\0';i++); 是结果是ABLMNP
这两个程序的差别在哪?
----------------解决方案--------------------------------------------------------
差别在第一次循环i的值
----------------解决方案--------------------------------------------------------
i++的执行时刻不同
[color=white]
----------------解决方案--------------------------------------------------------
while(a[i++]!='\0')
b[i]=a[i];
在执行b[i]=a[i];之前,while的副作用已经生效
也就是说i已经自加了1
----------------解决方案--------------------------------------------------------
谢谢了!
----------------解决方案--------------------------------------------------------