近期正在看《C语言深度剖析》,里面有一个讲解自加运算符(++),有一程序如下:
void main()
{
int i;
for(i=0, printf("First i = %d\t",i);
i<10, printf("Second i = %d\t",i);
i++,printf("Third i = %d\t",i))
{
printf("Fourth = %d\n",i);
}
system("pause");
}
Ctrl+F5后,程序会无限循环,个人理解如下:
上述for循环语句的判断部分:i < 10,printf("Second i = %d\t",i);其实是一个逗号(,)表达式,
在逗号表达式中,其最终的值由表达式最后的一个值决定,
而printf()函数是有返回值的,返回的是一个int值,表示打印的字符数,
所以综上,for循环判断语句的最终值为非13(真)……
(以上为个人理解,如有不足请指点)
借以此文祝贺开博^^