代码示例:
#includeusing namespace std; int g_x = 0; //全局非静态变 static int g_s_x = 1; //全局静态变量 const int g_c_x = 2; //全局常量 const string g_c_s = "abcd"; //全局字符串常 int main(int argc, char** argv) { int l_x = 3; //局部非静态变量 static int s_l_x = 4; //局部静态变量 const int c_l_x = 5; //局部常量 const string c_l_s = "efgh";//局部字符串常量 cout << "全局非静态变量g_x: " << &g_x << " 全局区" << endl; cout << "全局静态变量g_s_x: " << &g_s_x << " 全局区" << endl; cout << "全局常量g_c_x: " << &g_c_x << " 全局区" << endl; cout << "全局字符串常量g_c_s: " << &g_c_s << " 全局区" << endl << endl; cout << "局部非静态变量l_x: " << &l_x << " 栈区" << endl; cout << "局部静态变量s_l_x: " << &s_l_x << " 全局区" << endl; cout << "局部常量c_l_x: " << &c_l_x << " 栈区" << endl; cout << "局部字符串常量c_l_s: " << &c_l_s << " 栈区" << endl; return 0; }
运行结果:
总结:
| 内存区域 | 作用域 | |
| 全局非静态变量 | 全局区 | 所在源程序下所有源文件 |
| 全局静态变量 | 全局区 | 所在源文件 |
| 全局常量 | 全局区 | 所在源文件 |
| 全局字符串常量 | 全局区 | 所在源文件 |
| 局部非静态变量 | 栈区 | 所在域 |
| 局部静态变量 | 全局区 | 当前源文件下的所有相同域 |
| 局部常量 | 栈区 | 所在域 |
| 局部字符串常量 | 栈区 | 所在域 |



