一、定义
1.指针和指针变量的定义
一个变量的地址称为该变量的“指针”。例如,地址2000是变量i的指针。如果有一个变量专门用来存放另一变量的地址,则它称为“指针变量”。
2.变量的指针和指向变量的指针变量
变量的指针就是变量的地址。存放地址的变量就是指针变量,它用来指向另一个变量,为了表示指针变量和它所指向的变量之间的关系,C语言规定用“*”符号表示“指向的对象”。
3.指针变量的定义
定义指针变量的一般形式:
基类型 *指针变量名;
可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向一个该变量。被赋值的指针变量前不能再加“*”说明符,如写为*p=&a是错误的。
定义指针变量时要注意:
(1)指针变量前面的“*”,表示该变量的类型为指针型变量。
(2)在定义指针变量时必须指定基类型。
(3)需要特别注意的是只有整型变量的地址才能放到指向整型变量的指针变量中。
对指针变量赋值时要注意:
(1)指针变量中只能存放地址,不要将一个整数赋给一个指针变量。
(2)赋给指针变量的变量地址不能是任意的类型,而只能是与指针变量的基类型具有相同类型的变量的地址。
二、指针变量的引用
1.引用指针变量时的三种情况:
(1)给指针变量赋值。如:
p=&a;
(2)引用指针变量的值。如:
printf(“%o”,p);
(3)引用指针变量指向的变量。如:
如果已执行p=&a;则printf(“%d”,*p);
2.有关的两个运算符:
(1)& 取地址运算符。&a是变量a的地址。
(2)* 指针运算符(或称“间接访问”运算符),
*p是指针变量p指向的对象的值。
三、指针的运算
C语言规定在指针指向数组元素时,可以对指针进行以下运算:
加一个整数(用+或+=),如p+1
减一个整数(用-或-=),如p-1
自加运算,如p++,++p
自减运算,如p--,--p
两个指针相减,如p1-p2(只有p1和p2都指向同一个数组中的元素时才有意义)。