一、指针
指针:一个变量的地址
指针变量:专门用来存储其他变量的地址的变量
定义指针变量:类型 *指针变量名
如:int *a;
*:表示该变量类型为指针变量
在定义指针变量时必须指定类型
只有与指针变量类型相同的变量地址才能放到该指针变量中
赋值语句使指针变量得到另一个变量的地址:
p=&i;
指针变量只能存放地址,不能将一个整数赋值给一个指针变量
二、引用指针变量
引用指针变量时,可能会有三种情况:
(1)给指针变量赋值
如:p=&a;
(2)引用指针变量的值
如:printf("%d",p);
(3)引用指针变量所指向的变量:
有关的两个运算符
&:取地址运算符,如&a是变量a的指针
*****:指针运算符(间接访问运算符)
如:*p是指针变量p指向的对象的值
三、通过指针引用数组
1、数组元素的指针
用一个指针变量指向一个元素数组
int a[10];
int *p;
p=&a[0];
2、指针的运算
在指针指向数组元素时,可以指针进行如下运算:
p+1:指向同一数组中的下一个元素
p-1:指向同一数组 中的上一个元素
p++:
++p:p指向数组的下一个元素a[1]
p----p
p+i:指向数组的第i个元素
*(p+i)是p+i所指向的数组元素,即a[i]
p1-p2(p1 p2都指向同一数组中的元素):两个地址之差除以数组元素的长度
3、通过指针引用数组元素
引用一个数组元素
(1)下标法:如 a[i]
(2)指针法:如 *(a+i)
int a[10];
int *p,i;
for(p=a;p<(a+10);p++)
printf("%d",*p);