1.指针变量声明
(1)定义指针变量
在变量定义语句int p, *p1, *q; 中用 定义的变量均为指针变量。因此该语句定义了名为p、p1与q三个整型指针变量。因为指针变量用于存放变量地址,而地址通常为4字节,所以指针变量的长度均为4个字节。
(2)指针变量赋值
指针变量定义后其值为随机数,若此随机数为系统区的地址,则对该指针变量所指系统区某存储单元进行赋值运算,将改变系统区该单元中内容,可能导致系统的崩溃。所以,指针变量定义后必须赋某个变量的地址或0。
给指针变量赋初值有三种情况:
第一种情况是用取地址运算符”&”将变量地址赋给指针变量。如:p=&a;
第二种情况是将一个指针变量中的地址赋给另一个指针变量,如:p1=p;
第三种情况是给指针变量赋空值0,如q=0;表示该指针变量不指向任何变量。(3)指针变量的引用
指针变量的引用是通过指针运算符”*”实现。在上例中,*p与*p1均表示变量a,因此,第一个输出语句 cout<<*p 被执行后,输出的是变量a的内容100。而赋值语句 *p1=200;是通过指针变量p1间接的将数据200赋给变量a,因此,第二个输出语句中,a 、*p、 *p1同为赋值后变量a的内容200。
(4)指针变量初始化
指针变量可以象普通变量一样,在定义指针变量时赋初值,如上例中,定义指针变量p的语句可写成:int *p=&a;
2.指针变量的运算
指针变量的运算有三种:赋值运算、关系运算与算术运算。
(1)指针变量赋值运算
指针变量赋值运算就是将变量的地址赋给指针变量。
(2)指针变量的算术运算
指针变量的算术运算主要有指针变量的自加、自减、加n和减n操作。
* 指针变量自加运算
指令格式:<指针变量>++;
指针变量自加运算并不是将指针变量值加1的运算,而是将指针变量指向下一个元素的运算。当计算机执行 <指针变量>++ 指令后,指针变量实际增加值为指针变量类型字节数,即:<指针变量>=<指针变量>+si