gpt4 book ai didi

有人能解释一下这段代码的输出吗?

转载 作者:行者123 更新时间:2023-11-30 19:54:46 24 4
gpt4 key购买 nike

答案是 90。但这的逻辑是什么?如果我写这个 j=(4,5);那么答案是 5。

    #include<stdio.h>
void main()
{
int j;
j=(4,5,90);
printf("%d\n",j);
}

最佳答案

您正在使用 comma operator :

In the C and C++ programming languages, the comma operator (represented by the token ,) is a binary operator that evaluates its first operand and discards the result, and then evaluates the second operand and returns this value (and type).

请注意,这与分隔函数参数的逗号不同。

a = 1, 2, 3;
^ ^
| |
comma operators

a = foo(1, 2, 3);
^ ^
| |
separators

对于您的代码,这意味着所发生的只是表达式 4590 被一一求值,并且其结果是最后一个表达式的结果,即 90

括号只是括号,它们不会以任何方式影响结果。

const int j = (4, 5, 90);

等同于:

const int j = 4, 5, 90;

或者,就此而言:

const int j = (4), (5), (90);

正如我链接到的维基百科页面上所指出的,从上面应该可以明显看出,逗号运算符很少有用。它可以被欺骗以用于各种隐晦的目的(请参阅 this page for examples ),但做隐晦的事情很少会获胜。

关于有人能解释一下这段代码的输出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850889/

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