预测以下程序的输出:
#include
int main()
{
printf("%d", 1 << 2 + 3 << 4);
return 0;
}
(A) 112
(B) 52
(C) 512
(D) 0答案: (C)
说明:程序背后的主要逻辑是运算符的优先级和关联性。加法(+)运算符的优先级高于shift(<<)运算符。因此,表达式归结为1 <<(2 + 3)<< 4 ,当移位运算符具有从左到右的关联性时,表达式又减少为(1 << 5)<< 4。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。