📜  C |运营商|问题16

📅  最后修改于: 2021-05-25 20:16:29             🧑  作者: Mango

预测以下程序的输出:

#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基础课程》。