指针变量是含有一个数据对象地址的特殊变量,指针变量中只能存放地址。与指针变量有关的运算符有两个,它们是取地址运算符&和间接访问运算符*。例如:&a 为取变量a的地址,*p为指针变量p所指向的变量。
指针变量经过定义之后可以像其他基本类型变量一样引用。例如:
· 变量定义
· 指针赋值
· 指针变量引用
指向相同类型数据的指针之间可以相互赋值。例如:
原来指针px指向x,py指向y,经上述赋值之后,px和py都指向y。
例2-41 输入两个整数x和y,经比较后按大小顺序输出。
程序执行结果:
程序中定义了三个指针变量*p、*p1和*p2,它们都指向整型变量。经过赋值之后,p1指向x,p2指向y。然后比较变量x和y的大小,若x<y,则将p1和p2交换,使p1指向y,p2指向x;若x>y则不交换。最后的结果必然使指针p1指向较大的数,p2指向较小的数,按顺序输出*p1和*p2的值。值得注意的是在程序执行过程中,变量x和y的值并未交换,所交换的只是它们的指针。由于指针p、p1和p2都是指向int类型数据的指针,故可以相互赋值,实现指针p1和p2的交换。