1.首先要准确的弄清楚指针的含义,指针就是地址。
这个比较容易,前面也有提到,就不多解释了。
2.什么叫“指向”?
地址就意味着指向,因为通过地址能找到具体该地址的对象。但是应该注意,并不是任何类型数据的地址都可以存放在同一个指针变量中的,只有与指针变量的基类型相同的数据的地址才能存在相应的指针变量中。例如:
int a,*p; //p是int*型的指针变量,基类型是int型
float b;
p=&a; //a是int型,合法
p=&b; //b是float型,类型不匹配
3.要深入掌握在对数组的操作中正确使用指针
一位数组名代表数组首元素的地址,如:
int *p,a[10];
p=a;
p是指向int型类型的指针变量,显然,p只能指向数组中的元素(int型变量),而不是指向真个数组。在进行赋值时,一定要先确定赋值号两侧的类型是否相同,是否允许=赋值。
4.有关指针变量的归纳比较
5.指针运算
(1).指针变量加减一个整数,将该指针变量的原值(是一个地址)和它所指向的变量所占用的存储单元的字节数相加减。
(2).指针变量赋值,将一个变量地址赋给一个指针变量,例如:
p=&a;
p=array;
p=&array[i];
p=max;
p1=p2;
注意:不应该把一个整数赋给指针变量
(3)两个指针变量可以相加减
(4)两个指针变量可以比较
6.指针变量可以有空值,即指针变量不指向任何变量
p=NULL;
其中NULL是一个符号常量,代表整数0,在stdio.h的头文件中对NULL进行了定义: #define NULL 0;它是指向地址为0的单元。