数据在内存中存储方式:
按数据类型给在内存为其分开一定数量的存储单元(字节)。
内存单元的地址
内存单元的编号,与变量名对应。
内存单元的内容
即变量的内容。
变量的“直接访问”方式
按变量的地址(即变量名)存取变量值的方式
![](https://img-my.csdn.net/uploads/201303/10/1362924588_9282.png)
变量的“间接访问”方式
将变量的地址放在另一个内在单元中,先到另一个内存单元中取得变量的地址,再由变量的地址找到变量并进行数据的存取
![](https://img-my.csdn.net/uploads/201303/10/1362924553_8394.png)
此时变量pointer为指针变量,存放的是变量i的内在地址,我们说pointer指向i。
指针的概念
一个变量的地址称为该变量的指针。
指针变量
专门用于存储其它变量地址的变量
指针与指针变量的区别,就是变量值与变量的区别
指针变量的定义
1.定义方式:
类型标识符 *指针变量名;
eg:
float *p1;//定义了p1为指向实型变量的指针变量
char *p2;//定义了p2为指向字符串变量的指针变量
2.指针变量的三要素:
- 指针变量的类型:和其所指变量的类型一致
- 指针变量的值:另一个变量在内存的地址
- 指针变量的名字:起法同普通变量
3.标识符前面的“*”,表示该变量为指针变量。但指针变量名是*后面的名字。
4.指针变量的赋值
方式:指针变量名=某一地址;
方式1:指针变量名=&变量名;//&:取地址符号
方式2:指针变量名=另一指针变量;
int i , *p,*q;
p=&i;//方式一
q=p;//方式二
5.指针的运算
- 算术运算
int *p,i;
char *q,c;
p=&i;
q=&c;
- 比较运算