指针变量
标签: C语言
学习人数: 14.8k

使用指针变量的例子

变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。

为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,i_pointer代表指针变量,而*i_pointer 是 i_pointer 所指向的变量。

因此,下面两个语句作用相同:

i=3;  
*i_pointer=3;  

第二个语句的含义是将 3 赋给指针变量 i_pointer 所指向的变量。

 

怎样定义指针变量

对指针变量的定义包括三个内容:

(1) 指针类型说明,即定义变量为一个指针变量;

(2) 指针变量名;

(3) 变量值(指针)所指向的变量的数据类型。

其一般形式为:

类型说明符 *变量名;  

其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变

量的数据类型。

例如:

int *p1;  

表示 p1 是一个指针变量,它的值是某个整型变量的地址。或者说 p1 指向一个整型变量。至于 p1 究竟指向哪一个整型变量,应由向 p1 赋予的地址来决定。

再如:

int *p2; /*p2 是指向整型变量的指针变量*/  
float *p3; /*p3 是指向浮点变量的指针变量*/  
char *p4; /*p4 是指向字符变量的指针变量*/  

应该注意的是,一个指针变量只能指向同类型的变量,如 P3 只能指向浮点变量,不能时而指向一个浮点变量,时而又指向一个字符变量。

 

 

怎样引用指针变量

指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。在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,还定...

登录查看完整内容


课后作业

掌握本节内容


登录后开始许愿

暂无评论,来抢沙发