jcst.net
当前位置:首页 >> int X=1, y=0;iF(!x) y++; ElsE iF(x==0) iF( >>

int X=1, y=0;iF(!x) y++; ElsE iF(x==0) iF(

"!" 是取非得意思。 两个基本概念 1、在C语言中一般认为“0”是假,其他不是“0”的都是真。 2、if()里面为真,则进入if下的大括弧{},为假,就跳过。 以此题为例: 若X是“0”(为假)。则“!x”就不是零(为真)。则里面为真,进入if下的大{}。 若X...

我整理了一下,你就清楚了,你的程序就相当于: #includemain(){int x=1,y=0;if(!x)y++;else{if(x==0){if(x) y+=2;else y+=3;}}printf("%d\n",y);} 因为else总是与尽可能近的if配对。

最后输出的结果是0,还原一下程序就可以看的更清楚 #includeint main(){int x = 1, y = 0;if (!x){y++;}else if (x == 0){if (x) {y += 2;}else{y += 3;}}printf("%d\n", y);return 0;}首先x=1,所以!x=0为假,所以往下执行,而x=1,所以else if...

就是D啊 if(!x)y++;等价于 if(0)y++; 是个非值 等式不成立 上面的if 和else语句都没有执行 返回初始值 0

你的程序不完整吧,下面是我自己根据你所写的语句的注释和说明,不知是否和你的初衷一样。 #include int main() { int x=1,y=0; if(!x) y++; //这里是对x≠0时的处理。 else if(x==0) ; //这里应有对于x=0时的处理。就是这里缺少相应的处理语句,...

因为是if(a=0),而不是if(a==0),如果是if(a==0),结果是9,a=0代表将0赋值给a

0 判断分支都不为真,if的所有语句不执行

main() { int x=3,y=0,z=0; if(x=y+z) printf("****"); else printf("####"); } 的输出结果是多少? if里面的东西是x=y+z这个是先执行y+z然后赋给X然后判断X的值真还是假,这里X会变成0是假的,所以执行的是第二句输出好多#######

int x=0,y=2; if(x=0) // 条件是赋值语句, 相当于 if( 0 ), 跳到else 分支 y= 1+ x; else y = x - 1; // x = 0, y = 0 - 1 ,则y = -1;

网站首页 | 网站地图
All rights reserved Powered by www.jcst.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com