文档介绍:第6章指针
指针概念复杂, 多思考, 多比较, 多上机。
1、数据在内存中如何存取的?
1)程序定义变量
2)编译时, 给变量分配内存单元
①根据变量的类型, 分配一定的长度
②变量名转换为地址
③地址:内存单元字节的编号
例:
int i, j, k;
i 2000
j 2004
k 2008
(变量名被首地址代替)
i=3;
j=6;
3)数据的存取方式
①直接访问方式
按变量地址存取变量值的方式。
例:
k=i+j;
i 2000 取 3
j 2004 取 6
k 2008 存 9
②间接访问方式
先找到存放变量地址的变量, 从中取出变量的地址,
然后再按地址存取值。
例:
变量 i_pointer
i_pointer=&i;
i_pointer 放了i的首地址 2000
内存也会给i_pointer地址, 3010
i取值:
先去i_pointer地址, 取i的首地址,
再去该地址, 取i的值 3。
&——取地址运算符
2、两种访问方式图示法:
2000
3
3
1)直接
i
2000
i
2000
2)间接
i_pointer
i_pointer 指向 i
3、概念
1)地址:
内存字节的编号。
如:2000, 3010
2)指针(习惯上叫地址):
一个变量的地址称为该变量的指针。
i的指针是2000
3)指针变量(习惯上简称指针):
一个变量专门用来存放另一个变量的地址,
则称这个变量为指针变量。
i_pointer=&i; i_pointer称指针变量。
(指针变量的值是地址)
4)指向:
指针变量和其存放地址的变量间有指向关系。
如:
i_pointer=&i;
则i_pointer指向i
5)指向关系:
通过地址来实现,
有指向关系, 则可实现间接访问。
3 *i_pointer
2000
i_pointer i
2000
1、名词
指针;指针变量;指向
2、指向关系的表示方法
用*符号表示"指向"
例: i_pointer=&i;
i_pointer 指向 i
i 与*i_pointer 等价
i=3;
或*i_poniter=3;
(将3 赋给i_pointer指向的变量)
*——指向运算符