【发布时间】:2011-07-17 18:02:54
【问题描述】:
以下操作的结果将打印什么:
x=5;
printf("%d,%d,%d\n",x,x<<2,x>>2);
答案:5,20,1
我认为顺序是未定义的,但我在上面找到了许多网站上的面试问题。
【问题讨论】:
-
感谢您对缩进的帮助。我的意思是像后缀或前缀这样的运算符而不是移位。
-
为什么你认为它是未定义的?为什么你认为评估顺序很重要?无论何时评估,每个参数都将具有相同的值。
标签: c++ c function operator-precedence