0.知识回顾
1.指针:反应地址和类型的信息叫指针
2.指针变量:因为包含所指对象的地址和类型,所以指针变量是指针,但指针绝不限于指针变量
3.指针变量的值,地址,类型
存地址的变量叫做指针变量
1.指针变量的值:所存的地址
2.指针变量的地址:指针变量也是变量,他储存别人的地址,自己也有地址
3.指针变量的类型:他存的地址谁的他的类型就是什么样的
之前我们学习过用指针访问变量
例如:
int a,*p 定义整型变量a和指针变量p
p=&a 给指针赋值p=&a
int a; 定义简单变量a
*p=&a; *p指针内容是取a的地址(&是取地址运算符)给指针赋初值
1.通过指针变量访问一维数组的下标变量
要访问一维数组a的第0个元素a[0],必须先定义一个指针变量,并且让她储存a[0]的地址,即:
int a[4],b,*p=&a[0] 指针变量赋初值,注意:*p=a[0]和*p=&a等价
此程序中,如果用到a[0],就可以使用*p来表示a[0]
因为数组的所有元素在内存空间内都是连续存放的,所有不需要定义很多的指针变量
因为指针有一个特性:对指针+1或者-1就意味着指向上一个或者下一个对象,例如:
指针p指向x,那么p+1指向和x连续的相同数据类型的变量
所以,因为前面的代码,已经让p指向a[0],那么p+1指向a[1],所以可以用*(p+1)来表示a[1],同理,也可以通过p访问a[2],a[3].
2.通过指针变量访问二维数组的下标变量
因为二维数组的下标变量在储存空间也是连续储存的,所以也可以用指针来表示他们,如代码:
int a[2][3],*p 定义一个二维数组,和一个Int*型指针变量
p=a[0] 给指针变量赋值指向a[0]一维数组的第一个下表变量
p指向a[0][0]
p+1指向a[0][1]
p+2指向a[0][2]
因此,p可以表示出二维数组的所有下标变量