变量的概念
- 概念:
- 变量: 既能读又能写的内存对象。
- 常量:一旦初始化后不能修改的对象
- 变量定义形式:类型标识符, 标识符, … , 标识符;
- 例如:
int x ; int wordCut , Radius , Height ;
double FlightTime , Mileage , Speed ;
变量的本质
- 程序通过变量来申请和命名内存空间 int a = 0
- 通过变量名访问内存空间,也就是说变量是内存空间的别名
(一段连续)内存空间的别名(是一个门牌号),如下图:
int a,在内存中占4个字节,连续32个bit;
double b ,8个字节,连续64个bit
也就是说我们通过变量来操作内存,对内存可读可写。
修改变量有几种方法?
- 直接
- 间接。内存有地址编号,拿到地址编号也可以修改内存;于是横空出世了!(编程案例)
- 内存空间可以再取给别名吗? 可以 C++ 引用
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a;
int b;
int *p; //内存中分配空间
//直接赋值 // cpu里面执行
a = 10;
printf("&a:%d\n", &a); //&a:3210316
printf("a:%d\n", a); //a:10
//间直赋值 - 直接通过内存(变量的门牌号)
*((int *)&a) = 200; //指针的来源
printf("a:%d\n", a); //a:200
//间直赋值- 通过指针
{
p = &a;
*p = 300;
printf("a:%d\n", a); //a:300
}
system("pause");
}
通过数据类型定义变量
- 通过数据类型定义变量
总结及思考题
- 对内存,可读可写;
- 通过变量往内存读写数据;
- 不是向变量读写数据,而是向变量所代表的内存空间中写数据。
- 问:变量跑哪去了?(代码区)
- 思考1:变量三要素(名称、大小、作用域),变量的生命周期?
- 思考2:C++编译器是如何管理函数1,函数2变量之间的关系的?
- 引出两个重要话题:内存四区模型 和 函数调用模型