适合有一定基础看的,有问题欢迎讨论。
#include <iostream>
using namespace std;static int test1;//全局静态变量
int test2;//全局变量
int main()
{ //全局静态变量和全局变量没初始化,编译器会初始化为0cout << "test1: " << test1 << endl;cout << "test2: " << test2 << endl;for (int i = 0; i < 10; i++){//局部变量必须初始化,否则报错int test3 = 10;test3++;cout << test3 << endl;}for (int i = 0; i < 10; i++){//局部静态变量没初始化,编译器也会初始化为0static int test4;test4++;cout << test4 << endl;}//test4 += 1; 报错//注意:局部静态变量的生命周期和作用域 //局部静态变量的生命周期是从首次执行到定义语句时开始,程序执行完结束//在局部静态变量的作用域外不能对其修改,但是局部静态变量生命周期仍未结束!return 0;
}
#include <iostream>
using namespace std;void func()
{cout << "test" << endl;
}static int test1;//全局静态变量
int test2;//全局变量
int main()
{ cout << &test1 << endl;//存储在内存的数据段cout << &test2 << endl;//存储在内存的数据段{static int test3;int* test4 = new int(1);//堆上开辟内存int test5 = 0;//局部变量存储在栈上cout << &test3 << endl;//存储在内存的数据段cout << test4 << endl;//存储在内存的堆区cout << &test5 << endl;//存储在内存的栈区}cout << func << endl;//存储在内存的代码段return 0;
}