C 对int值使用运算符“?:”的结果是什么

C 对int值使用运算符“?:”的结果是什么,c,C,你能告诉我下面代码中x的值是多少并解释原因吗? 我以为x应该是8,但结果显示它是2 int x=3; x = 4? 2: 8; 这:?:是三元运算符。下面是语法:条件?如果为真:如果为假。这意味着,如果条件为真,则表达式将返回if_true,否则将返回if_false 因此,在你的例子中,条件是4,它总是真的,因为如果你用二进制表示4,并非所有的位都是0,因此返回if_真的部分。同时检查。它返回输出2,因为在检查4时,您的条件为真,而在第二行代码中,4始终为真。如果希望结果为8:则编写如下代码

你能告诉我下面代码中x的值是多少并解释原因吗? 我以为x应该是8,但结果显示它是2

int x=3;
x = 4? 2: 8;
这:?:是三元运算符。下面是语法:条件?如果为真:如果为假。这意味着,如果条件为真,则表达式将返回if_true,否则将返回if_false


因此,在你的例子中,条件是4,它总是真的,因为如果你用二进制表示4,并非所有的位都是0,因此返回if_真的部分。同时检查。

它返回输出2,因为在检查4时,您的条件为真,而在第二行代码中,4始终为真。如果希望结果为8:则编写如下代码:

int x=3;
x = x==4? 2: 8;

当条件为false时,它将返回8,因为x的值为3,并且您正在对照4检查它。

为什么您认为是8?这是错误的,你已经发现了。你告诉我们为什么你认为x是8!你在标题中提到的运算符q是什么?问题的主体没有提到。2是正确答案。因为零和负值的作用是false,所有正值的作用是true。检查答案-@AvanishKumar从什么时候起负数计算为FALSE?负值表示计算结果为真的非零。