首页 理论教育 指针变量的定义和引用

指针变量的定义和引用

更新时间:2025-01-19 工作计划 版权反馈
【摘要】:图8-2存放地址的指针变量示意图1.指针变量的一般定义形式类型名*指针变量名1,*指针变量名2,……变量值(指针)所指向的变量的数据类型,称为“基类型”。其功能是表示指针变量所指的变量。在“*”运算符之后的变量必须是指针变量。

在C语言中,还可以定义一种特殊的变量,这种变量只是用来存放内存地址的。如图8-2所示,假设我们定义了一个这样的变量p,它也有自己的地址(2002)。若将变量a的内存地址(1012)存放到变量p中,这时要访问变量a所代表的存储单元,可以先找到变量p的地址(2002),从中取出a的地址(1012),然后再去访问以1012为首地址的存储单元。这种通过变量p间接得到变量a的地址,然后再存取变量a的值的方式称为“间接存取”方式。这种用来存放地址的变量称为“指针变量”,上述变量p就是指针变量。

图8-2 存放地址的指针变量示意图

1.指针变量的一般定义形式

类型名*指针变量名1,*指针变量名2,……;

例如:

int*pi,*pj;

说明:

(1)pi和pj是用户标识符,每个变量前面的星号“*”是一个用来说明该变量是指针变量的说明符。

(2)在以上定义语句中,pi和pj是两个指向整型(int类型)变量的指针,也就是说变量pi和pj中只能存放int类型变量的地址,这时我们称int是指针变量pi和pj的基类型。

(3)变量值(指针)所指向的变量的数据类型,称为“基类型”。

2.对指针变量的操作

像一般变量一样,指针变量也可以通过指针运算符进行相应的运算。指针运算符主要有两种:取地址运算符“&”和取内容运算符“*”。

(1)取地址运算符“&”使用的格式:(www.xing528.com)

&<变量名>

取地址运算符“&”是单目运算符,其结合性为自右至左。其功能是取变量的地址,即返回操作对象的内存地址。“&”只能用于一个具体的变量或者数组元素,而不能是表达式或者常量。

例如,假定有以下定义语句:

int*p,i=10,j;

p=&i;

(2)取内容运算符“*”使用的格式:

*<指针变量名>

取内容运算符“*”是单目运算符,其结合性为自右至左。其功能是表示指针变量所指的变量。在“*”运算符之后的变量必须是指针变量。

例如:根据(1)的例子,有语句j=*p。

以上赋值语句是把p所指存储单元(i)的内容(整数10)赋予变量j,这里*p代表p所指的变量i。“j=*p;”等价于“j=i;”。

语句j=*(&i);

表达式&i求出变量i的地址,以上赋值语句表示取地址&i中的内容赋予j。由于运算符“*”和“&”的优先级相同,且自右向左结合,所以表达式中的括号可以省略,即可写成:j=*&i;。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈