学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

请教关于程序的问题

请教关于程序的问题

#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
这两个程序的差别在哪?

TOP

差别在第一次循环i的值

TOP

i++的执行时刻不同

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

while(a[i++]!='\0')
   b[i]=a[i];
在执行b[i]=a[i];之前,while的副作用已经生效
也就是说i已经自加了1
“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!

TOP

谢谢了!

TOP

发新话题