C++核心编程
C++四个区 代码区 全局区 堆区 栈区
代码区,是只读的,共享的,
全局区 全局变量和静态变量存放在这里,这个区域的数据在程序结束后是操作系统管理释放的
#include<iostream>
using namespace std;
//全局变量
int qa=10;
int qb=10;
int main(){
//全局区
//创建普通局部变量
int a=10;
int b=10;
cout<<"数据a的地址为:"<<(int)&a<<endl;
cout<<"数据b的地址为:"<<(int)&b<<endl;
cout<<"数据qa的地址为:"<<(int)&qa<<endl;
cout<<"数据qb的地址为:"<<(int)&qb<<endl;
system("pause");
return 0;
}
运行结果
数据a的地址为:18218124
数据b的地址为:18218112
数据qa的地址为:6459392
数据qb的地址为:6459396
请按任意键继续. . .
静态变量也放在全局区中
static int ja=10;
static int jb=10;
cout<<"数据ja的地址为:"<<(int)&ja<<endl;
cout<<"数据jb的地址为:"<<(int)&jb<<endl;
system("pause");
数据a的地址为:15727280
数据b的地址为:15727268
数据qa的地址为:8556544
数据qb的地址为:8556548
数据ja的地址为:8556552
数据jb的地址为:8556556
请按任意键继续. . .
字符串常量也会放在全局区中
cout<<"字符串的地址为:"<<&"hello world!!!"<<endl;
数据a的地址为:13630076
数据b的地址为:13630064
数据qa的地址为:954368
数据qb的地址为:954372
数据ja的地址为:954376
数据jb的地址为:954380
字符串的地址为:000E784C
请按任意键继续. . .
const 修饰的全局变量
#include<iostream>
using namespace std;
//全局变量
int qa=10;
int qb=10;
const int cqa=10;
const int cqb=10;
int main(){
//全局区
//创建普通局部变量
int a=10;
int b=10;
cout<<"数据a的地址为:"<<(int)&a<<endl;
cout<<"数据b的地址为:"<<(int)&b<<endl;
cout<<"数据qa的地址为:"<<(int)&qa<<endl;
cout<<"数据qb的地址为:"<<(int)&qb<<endl;
static int ja=10;
static int jb=10;
cout<<"数据ja的地址为:"<<(int)&ja<<endl;
cout<<"数据jb的地址为:"<<(int)&jb<<endl;
//常量
//字符串常量
cout<<"字符串的地址为:"<<&"hello world!!!"<<endl;
//const修饰的变量
//const修饰的全局变量
cout<<"数据cja的地址为:"<<(int)&cqa<<endl;
cout<<"数据cjab的地址为:"<<(int)&cqb<<endl;
system("pause");
return 0;
}数据a的地址为:9435220
数据b的地址为:9435208
数据qa的地址为:5607424
数据qb的地址为:5607428
数据ja的地址为:5607432
数据jb的地址为:5607436
字符串的地址为:00557888
数据cja的地址为:5601328
数据cjab的地址为:5601332
请按任意键继续. . .
const修饰的局部变量 **不在**全局区中
#include<iostream>
using namespace std;
//全局变量
int qa=10;
int qb=10;
const int cqa=10;
const int cqb=10;
int main(){
//全局区
//创建普通局部变量
int a=10;
int b=10;
cout<<"数据a的地址为:"<<(int)&a<<endl;
cout<<"数据b的地址为:"<<(int)&b<<endl;
cout<<"数据qa的地址为:"<<(int)&qa<<endl;
cout<<"数据qb的地址为:"<<(int)&qb<<endl;
static int ja=10;
static int jb=10;
cout<<"数据ja的地址为:"<<(int)&ja<<endl;
cout<<"数据jb的地址为:"<<(int)&jb<<endl;
//常量
//字符串常量
cout<<"字符串的地址为:"<<&"hello world!!!"<<endl;
//const修饰的变量
//const修饰的全局变量
cout<<"数据cja的地址为:"<<(int)&cqa<<endl;
cout<<"数据cjab的地址为:"<<(int)&cqb<<endl;
const int jqa=10;
const int jqb=10;
cout<<"数据jja的地址为:"<<(int)&jqa<<endl;
cout<<"数据jab的地址为:"<<(int)&jqb<<endl;
system("pause");
return 0;
}
数据a的地址为:9764116
数据b的地址为:9764104
数据qa的地址为:8687616
数据qb的地址为:8687620
数据ja的地址为:8687624
数据jb的地址为:8687628
字符串的地址为:008478B8
数据cja的地址为:8681520
数据cjab的地址为:8681524
数据jja的地址为:9764092
数据jab的地址为:9764080
请按任意键继续. . .