变量本质分析

变量概念

  • 概念:既能读又能写的内存对象,称为变量;若一旦初始化后不能修改的对象则称为常量。
  •  变量定义形式:     类型  标识符, 标识符, … , 标识符 ;
  • 例如:

int   x ;

int   wordCut ,  Radius ,  Height  ;  

double   FlightTime ,  Mileage ,  Speed  ;

变量本质分析_第1张图片

变量本质 

1、程序通过变量来申请和命名内存空间 int a = 0
2、通过变量名访问内存空间
(一段连续)内存空间的别名(是一个门牌号)

修改变量有几种方法?

1、直接
2、间接。内存有地址编号,拿到地址编号也可以修改内存;于是横空出世了!(编程案例)
3、内存空间可以再取给别名吗?
4、数据类型和变量的关系
通过数据类型定义变量

总结及思考题

1 对内存,可读可写;2通过变量往内存读写数据;3 不是向变量读写数据,而是向变量所代表的内存空间中写数据。

问:变量跑哪去了?
思考1:变量三要素(名称、大小、作用域),变量的生命周期? 
思考2:C++编译器是如何管理函数和变量之间的关系的?

====》引出两个重要话题:
内存四区模型
函数调用模型

int  main()
{
	//2种方法,通过变量直接操作内存
	//通过内存编号操作内存
	int i = 0;
	printf("&i:%d\n", &i);
	*((int *)(1245024)) = 10;
	printf("i:%d", i);
	printf("hello....\n");
	getchar();
	return 0;
}

内存四区的建立流程

变量本质分析_第2张图片

流程说明

1、操作系统把物理硬盘代码load到内存
2、操作系统把c代码分成四个区
3、操作系统找到main函数入口执行

各区元素分析

变量本质分析_第3张图片

代码解析

#define  _CRT_SECURE_NO_WARNINGS 
#include 
#include 
#include 

void main()
{
	int a ;
	int b; 
	int *p ;
	//p = 0xaa11
	a = 10; //1 直接赋值  //cpu里面执行
	printf("&a: %d\n", &a);
	//2间接赋值 ==直接通过内存
	 *(1245024) = 200;

	 printf("a: %d\n", a);

	 {
		p = 1245024;  // 间接赋值 通过指针
		*p = 300; // *p本质是*(1245024)
	 }

	 //3 对内存空间能不能在取 别名.....  C++ 引用 抛砖.....
	//1245024
	printf("hello...\n");
	system("pause");
	return ;
}

 

你可能感兴趣的:(c/c++)