gpt4 book ai didi

c++ - 为什么下面的代码不会产生编译错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:36 25 4
gpt4 key购买 nike

我正在使用 VS2005 编译器,我期望以下代码会出现编译错误。

int a=1, b= 2, c=3;
a = (b,c);

赋值后 a 的值为 3。根据我的理解,它应该给出编译错误。

我很乐意知道这背后是否有任何正当理由。

最佳答案

您的代码中唯一的错误是您忘记了第二行末尾的分号,但我认为这是在撰写您的问题时出现的打印错误,而不是您问题的实际主旨。

我看不出为什么您显示的代码会产生编译错误。它对我来说编译得很好,a 的值实际上是 3。

See for yourself : 以下代码返回 3:

int main()
{
int a=1, b= 2, c=3;
a = (b,c);

return a;
}

诀窍是你使用 comma operator , 它计算它的第一个操作数然后丢弃结果,然后计算第二个操作数并返回它的值。

然而,作为Charles Bailey请注意,您必须将问题中显示的代码包装在一个函数中,否则您将在任何编译器中遇到编译错误。 C++ 不允许函数外的赋值语句。

关于c++ - 为什么下面的代码不会产生编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667510/

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