gpt4 book ai didi

c - if else 条件与 and 运算符

转载 作者:行者123 更新时间:2023-11-30 18:24:07 25 4
gpt4 key购买 nike

void main()
{
int i=4,j=12;
if(i=5 && j>5)
printf("Hi!");
else
printf("Hello!");
}

首先,上述代码的输出是 Hi!。根据我的说法,它应该显示语法错误,因为 i=5 是赋值运算符而不是 i==5,如果 i==5 那么它也是 false应该打印Hello,但是它怎么能打印Hi呢?

最佳答案

if语句中的条件

if(i=5 && j>5)

相当于

if( i = ( 5 && j>5 ))

由于 5 不等于 0 并且 j 确实大于 5,因此表达式 ( 5 && j>5 ) 计算结果为 1 并分配给变量

来自 C 标准(6.5.16 赋值运算符)

3 An assignment operator stores a value in the object designated by the left operand. An assignment expression has the value of the left operand after the assignment...

因此,当变量i的值等于1时,就会执行if条件。

看来你的意思是

if(i==5 && j>5)
^^^^

考虑到根据 C 标准,不带参数的函数 main 应声明为

int main( void )

关于c - if else 条件与 and 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44250138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com