C++核心编程——全局区

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
请按任意键继续. . .

哪些在全局区,哪些不在全局区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iamy0u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值