在C++中,extern
关键字用于声明一个变量是在其他文件中定义的全局变量,即外部变量。通过使用 extern
关键字,我们可以在当前文件中引用其他文件中定义的全局变量。
假设有两个文件 file1.cpp
和 file2.cpp
,分别包含以下内容:
// file1.cpp
#include <iostream>
using namespace std;
int globalVar = 10; // 定义全局变量
// file2.cpp
#include <iostream>
using namespace std;
extern int globalVar; // 使用 extern 声明外部变量
int main() {
cout << "外部变量 globalVar 的值为: " << globalVar << endl; // 访问外部变量
return 0;
}
在这个示例中,file2.cpp
使用 extern
声明了在其他文件中定义的全局变量 globalVar
,然后在 main
函数中访问了这个外部变量。
如果将 file1.cpp
和 file2.cpp
编译并链接在一起,然后运行 file2
,将会输出以下内容:
外部变量 globalVar 的值为: 10
这表明 file2.cpp
成功访问了在 file1.cpp
中定义的外部变量 globalVar
。
在C++中,变量的存储类别定义了变量的作用域和生存周期。C++中有几种存储类别,包括自动存储、静态存储、线程存储和动态存储等。这些存储类别影响了变量的生命周期以及在程序中的可见性。
判断是否是闰年,可以使用以下 C++ 代码来实现:
#include <iostream>
using namespace std;
bool isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return true;
} else {
return false;
}
}
int main() {
int year;
cout << "请输入一个年份:";
cin >> year;
if (isLeapYear(year)) {
cout << year << "年是闰年。" << endl;
} else {
cout << year << "年不是闰年。" << endl;
}
return 0;
}
在这个示例中,isLeapYear
函数接受一个年份作为参数,并返回一个布尔值来指示输入的年份是否是闰年。在 main
函数中,用户被要求输入一个年份,然后调用 isLeapYear
函数来判断这个年份是否是闰年,并输出相应的信息。
这段代码中使用了自动存储类别,因为 year
变量是在 main
函数内部声明的,它的生命周期与函数的执行周期相同。