指针是一种保存变量地址的变量,ANSI C使用类型void*代替char*作为通用指针类型。
一、指针与地址
指针时能够存放一个地址的一组存储单元(通常是两个或四个字节),一元运算符&可用于取一个对象的地址。地址运算符&只能应用于内存中的对象,即变量与数组元素,但不能作用于表达式、常量或寄存器类型的变量。
一元运算符*是间接寻址或间接引用运算符。一元运算符遵循从右向左的结合顺序,如:(*IP)++ 指ip指向的对象的值加一,而*IP++ 指对IP加一运算再解引用。
二、指针与函数参数
可以使主调程序将指向所要交换的变量的指针传递给被调用函数:swap(&a,&b); &a是一个指向变量a的指针,swap函数的所有参数都声明为指针,并且通过这些指针来间接访问它们指向的操作数。
void swap(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}