所指向的变量的数据类型。
其一般形式为:
类型说明符 *变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指
针变量所指向的变量的数据类型。
例如: int *p1;
表示 p1 是一个指针变量,它的值是某个整型变量的地址。或者说 p1 指向一个整型变量。
至于 p1 究竟指向哪一个整型变量,应由向 p1 赋予的地址来决定。
再如:
int *p2; /*p2 是指向整型变量的指针变量*/
float *p3; /*p3 是指向浮点变量的指针变量*/
char *p4; /*p4 是指向字符变量的指针变量*/
应该注意的是,一个指针变量只能指向同类型的变量,如 P3 只能指向浮点变量,不能
谭浩强 C 语言程序设计 2001 年 5 月 1 日
时而指向一个浮点变量,时而又指向一个字符变量。
10.2.2 指针变量的引用
指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋
值的指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址,
决不能赋予任何其它数据,否则将引起错误。在C语言中,变量的地址是由编译系统分配的,
对用户完全透明,用户不知道变量的具体地址。
两个有关的运算符:
1) &:取地址运算符。
2) *:指针运算符(或称“间接访问” 运算符)。
C语言中提供了地址运算符&来表示变量的地址。
其一般形式为:
&变量名;
如&a 表示变量 a 的地址,&b 表示变量 b 的地址。变量本身必须预先说明。
设有指向整型变量的指针变量 p,如要把整型变量 a 的地址赋予 p 可以有以下两种方式:
(1) 指针变量初始化的方法
int a;
int *p=&a;
(2) 赋值语句的方法
int a;
int *p;
p=&a;
不允许把一个数赋予指针变量,故下面的赋值是错误的:
int *p;
p=1000;
被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 也是错误的。
假设:
int i=200, x;
int *ip;
我们定义了两个整型变量 i,x,还定义了一个指向整型数的指针变量 ip。i,x 中可存放
整数,而 ip 中只能存放整型变量的地址。我们可以把 i 的地址赋给
松语文学免费小说阅读_www.16sy.com