📌  相关文章
📜  教资会网络 | UGC NET CS 2014 年 12 月 – III |问题 55(1)

📅  最后修改于: 2023-12-03 15:10:14.494000             🧑  作者: Mango

教资会网络 | UGC NET CS 2014 年 12 月 – III |问题 55

问题 55:下列是关于C ++的声明的哪一个错误?

i) extern int ix = 1024;
ii) static int ix = 1024;
iii) volatile int ix = 1024;
iv) register int ix = 1024;

该问题旨在考察对 C++ 中声明修饰符的理解。下面是每个选项的解释:

i) extern 关键字指定该变量在其他文件中定义,因此不能在声明中初始化该变量。该选项是错误的。

ii) 使用 static 关键字声明的变量只能在该文件中使用,而不能在其他文件中使用。此选项是合法的。

iii) volatile 关键字用于指示该变量可以被意外修改,因此优化器不能对其进行优化。该选项是合法的。

iv) register 关键字将变量存储在 CPU 寄存器中,以提高访问速度。该选项是合法的。

因此,选项 (i) 是错误的。

代码片段

下面是 C++ 中 static 关键字的用法示例:

#include <iostream>
 
void increment_counter() {
   static int counter = 0;
   ++counter;
   std::cout << "Counter is " << counter << std::endl;
}
 
int main() {
   increment_counter();
   increment_counter();
   increment_counter();
}

该代码将输出以下内容:

Counter is 1
Counter is 2
Counter is 3

在该示例中,将 counter 变量声明为 static,以便在调用 increment_counter() 函数时保留其值。