文章
1
粉丝
28
获赞
访问
188
#include <stdio.h> main() { int x=2,y= -1,z=5; if(x<y) if(y<0) z=0; else z=z+1; printf("%d\n", z); }
运行结果是5,实在搞不懂
看来对嵌套的理解不到位
如果给他们加上等价的中括号的话应该是
#include <stdio.h> main() { int x=2,y= -1,z=5; if(x<y){ if(y<0) z=0; else z=z+1; } printf("%d\n", z); }
这个题故意用对齐来迷惑人,但实际上C语言里对齐是没用的
怎酿 : 回复 snake: 谢谢老师,我又翻了一下书,明白过来了. if()if() printf(); else printf(); 按照C语言规定的if和else就近配对原则,代码实际等价 if(){ if() printf(); else printf(); } else 与 第二个if构成 if-else语句
登录后发布评论
看来对嵌套的理解不到位
如果给他们加上等价的中括号的话应该是
这个题故意用对齐来迷惑人,但实际上C语言里对齐是没用的