📅  最后修改于: 2023-12-03 15:10:14.494000             🧑  作者: Mango
问题 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()
函数时保留其值。