2.9.2 指针的定义和使用
对指针变量定义的一般形式为:
- 类型说明符 *变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示该指针变量所指向的变量的数据类型。例如:
- int *p; /*p是指向整型变量的指针变量*/
说明
该语句表示p是一个指针变量,它的值是某个整型变量的地址,或者说p指向一个整型变量。至于p究竟指向哪一个整型变量,应由向p赋予的地址来决定。
在使用指针变量时,要首先对指针变量赋初值,使指针变量指向一个具体值。为指针变量赋值的方式有两种,使用赋值语句为指针赋初值和在定义指针变量的同时进行初始化。例如:
- int a, *pa;
- pa=&a; /*方式一:使用赋值语句为指针赋初值*/
- int *pb=&a; /*方式二:定义指针变量的同时进行初始化*/
在指针定义和使用的过程中,经常会用到“&”和“*”这两个运算符。“&”是取地址运算符,“*”为指针运算符。例如:
- int x=10, *p, y;
- p=&x; /*把变量x的地址赋给指针变量p*/
- y=* p; /* *p表示指针变量p所指单元的内容,即变量x 的值,则y=10 */
提示
在这个例子中,虽然第一条语句和第三条语句都出现了“*p”,但它们的意义却不同,这是因为“*”在类型说明和取值运算中的含义是不同的,初学者要多加注意。