变量本质分析

变量概念

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

int   x ;

int   wordCut ,  Radius ,  Height  ;  

double   FlightTime ,  Mileage ,  Speed  ;

变量本质 

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;
}

内存四区的建立流程

流程说明

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

各区元素分析

代码解析

#define  _CRT_SECURE_NO_WARNINGS 
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

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 ;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值