2); 答案:5,20,1 我认为顺序是未定义的,但我在许多网站上发现上面是面试问题。 最佳答案 来自 C++ 标-6ren">
gpt4 book ai didi

c++ - 函数参数的评估顺序

转载 作者:太空狗 更新时间:2023-10-29 23:47:12 34 4
gpt4 key购买 nike

以下操作的结果将打印什么:

x=5; 
printf("%d,%d,%d\n",x,x<<2,x>>2);

答案:5,20,1

我认为顺序是未定义的,但我在许多网站上发现上面是面试问题。

最佳答案

来自 C++ 标准:

The order of evaluation of arguments is unspecified. All side effects of argument expression evaluations take effect before the function is entered. The order of evaluation of the postfix expression and the argument expression list is unspecified.

但是,如果参数是 x>>=2,您的示例只会有未定义的行为和 x<<=2 , 这样 x 就被修改了。

关于c++ - 函数参数的评估顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725706/

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