📅  最后修改于: 2023-12-03 14:52:15.165000             🧑  作者: Mango
在 C++ 中,定义全局数组是一种在程序的任何地方都可以访问的数组变量。在范围内定义全局数组意味着它的作用域仅限于当前文件。
extern
关键字声明全局数组通过在一个文件中使用 extern
关键字来声明全局数组,然后在另一个文件中定义该数组,可以实现在范围内定义全局数组。
file1.cpp
extern int globalArray[5]; // 声明全局数组
int main() {
// 使用全局数组
for(int i = 0; i < 5; i++) {
globalArray[i] = i + 1;
}
return 0;
}
file2.cpp
int globalArray[5]; // 定义全局数组
int main() {
// 使用全局数组
for(int i = 0; i < 5; i++) {
cout << globalArray[i] << " ";
}
return 0;
}
extern
关键字声明全局数组后,可以在多个文件中访问和修改该全局数组。extern
关键字告诉编译器,全局数组是在其他文件中定义的,而不是在当前文件中定义。因此,确保在另一个文件中正确定义全局数组。namespace
在范围内定义全局数组通过使用 namespace
关键字,在一个命名空间内定义全局数组,可以实现在范围内定义全局数组。
file.cpp
namespace Global {
int globalArray[5]; // 在命名空间内定义全局数组
}
int main() {
// 使用全局数组
for(int i = 0; i < 5; i++) {
Global::globalArray[i] = i + 1;
}
return 0;
}
namespace
关键字定义全局数组后,需要在使用该全局数组时指定命名空间,在前面添加命名空间名称(例如 Global::globalArray
)。static
关键字在范围内定义全局数组通过使用 static
关键字在一个文件的作用域内定义全局数组,可以实现在范围内定义全局数组。
file.cpp
static int globalArray[5]; // 在文件作用域内定义全局数组
int main() {
// 使用全局数组
for(int i = 0; i < 5; i++) {
globalArray[i] = i + 1;
}
return 0;
}
static
关键字定义全局数组后,只能在当前文件中访问该全局数组。其他文件无法访问该全局数组。static
关键字可以限制全局变量的作用域,避免与其他文件中的全局变量冲突。以上是在 C++ 中在范围内定义全局数组的三种方法。根据实际需求,选择适合的方法来定义全局数组。