📜  C |存储类和类型限定符|问题14

📅  最后修改于: 2021-06-28 20:30:18             🧑  作者: Mango

如果满足以下条件,则给定的代码d \ segment将生成什么输出:
第1行替换为“ auto int a = 1;”
第2行由“ register int a = 2;”代替(GATE CS 2012)
(A) 3 1
4 1
4 2
(B) 4 2
6 1
6 1
(C) 4 2
6 2
2 0
(D) 4 2
4 2
2 0

答案: (D)
说明:如果我们将行1替换为“ auto int a = 1;”并在第2行输入“ register int a = 2;”,则’a’在prtFun()中变为非静态。第一个prtFun()的输出保持不变。但是,第二个prtFun()调用的输出将更改,因为在第二个调用中创建了新的’a’实例。因此,再次打印“ 4 2”。最后,main中的printf()将打印“ 2 0”。使“ a”成为寄存器变量不会改变输出。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。