if 下面的题怎么理解?int a = 0;if a){printf("a is False\n");}else{printf("a is True\n");}屏幕输出:a is False

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 17:11:37
if 下面的题怎么理解?int a = 0;if a){printf(

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是假的).本来两句的顺序无关紧要,但习惯是对着重强调或估计多可能出现的,放的前面(也有人选择放在最后面),这就是一个约定,保持一致就好.