if 下面的题怎么理解?int a = 0;if a){printf("a is False\n");}else{printf("a is True\n");}屏幕输出:a is False
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/16 13:23:09
![if 下面的题怎么理解?int a = 0;if a){printf(](/uploads/image/z/10823863-31-3.jpg?t=if+%E4%B8%8B%E9%9D%A2%E7%9A%84%E9%A2%98%E6%80%8E%E4%B9%88%E7%90%86%E8%A7%A3%3Fint+a+%3D+0%3Bif+a%29%7Bprintf%28%22a+is+False%5Cn%22%29%3B%7Delse%7Bprintf%28%22a+is+True%5Cn%22%29%3B%7D%E5%B1%8F%E5%B9%95%E8%BE%93%E5%87%BA%EF%BC%9Aa+is+False)
if 下面的题怎么理解?int a = 0;if a){printf("a is False\n");}else{printf("a is True\n");}屏幕输出:a is False
if 下面的题怎么理解?
int a = 0;
if a)
{
printf("a is False\n");
}
else
{
printf("a is True\n");
}
屏幕输出:a is False
if 下面的题怎么理解?int a = 0;if a){printf("a is False\n");}else{printf("a is True\n");}屏幕输出:a is False
① C/C++语言,if(yyy)就是判断yyy是否为逻辑"真",因此这里就是判断!a是否为逻辑真.
② !在C语言里是“非”的意思,就是取逻辑反的操作.那么if (!a)就成了判断“非a”的真假,也就是a如果是非,那么!a是真.
③ 在C里面,一般定义0是逻辑假,即FALSE;而非0即逻辑真,即TRUE.因此,这里a=0,那么!a就是真,因此程序执行顺序是printf("a is False\n"); 所以屏幕输出a is False.
④ 只所以要这么写,其实就是按照自然语言的习惯,if (!a) 等于 “如果 没有 a”,也即“如果a不真”,那么打印输出(a是假的).本来两句的顺序无关紧要,但习惯是对着重强调或估计多可能出现的,放的前面(也有人选择放在最后面),这就是一个约定,保持一致就好.