我在书中遇到了一个问题,它要求我写出以下程序的输出。
#include<stdio.h>
int main()
{
int j=4;
( !j != 1 ? printf("\nWelcome") : printf("GooD Bye"));
return 0;
}我无法从根本上理解欢迎程序是如何在运行程序上打印的。有谁能在操作符层次结构的帮助下解释一下,编译器根据表达式计算什么值?
发布于 2013-12-19 18:23:13
线
( !j != 1 ? printf("\nWelcome") : printf("GooD Bye")); 等于
if(!j != 1)
printf("\nWelcome);
else
printf("Good Bye"); 这里,!j的计算结果为0,因此条件!j != 1将始终为true,并将打印Welcome。
发布于 2013-12-19 18:23:52
是啊,C的混乱!!
在c !j中,Ok计算为0,因为它不是0,所以0=1是真的,因为三元运算的真实部分被执行,并打印“迎宾”。
因此,为了重新估价:
!4 =0/或任何数字
!0 =1
https://stackoverflow.com/questions/20688932
复制相似问题