培养孩子专注力的游戏:C语言:为什么输出是2 3 3而不是2 3 4?

来源:百度文库 编辑:神马品牌网 时间:2024/04/19 06:57:54
#include<stdio.h>
#include<string.h>
main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}

if(i++==1&&(++j==3||k++==3)) 中
如果满足i++不等于1的话,结果该if,
如果满足i++等于1的话,等判断(++j==3||k++==3)是否为1
如果++j等于3则不需要判断k++==3这句
所以这里并不执行k++=3这句
所以k最后仍为3

自加1中
++k;与 k++;是不同的
++k;是先自加1然后输出结果值;
而 k++;是先输出结果值,然后在自加1
请参考C语言教材,有专门讲解...

因为这个符号:||前边的条件已经满足,程序根本就没有编译后边的程序码,所以就有这个结果了