指针与指针变量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通常指针变量的使用是:先定义指针变量,后给指针变量赋值,最后引用指针变量。现说明如下:

(1)定义指针变量

在变量定义语句int *p, *p1, *q; 中用* 定义的变量均为指针变量。因此该语句定义了名为p、p1与q三个整型指针变量。因为指针变量用于存放变量地址,而地址通常为4字节,所以指针变量的长度均为4个字节。

(2)指针变量赋值

指针变量定义后其值为随机数,若此随机数为系统区的地址,则对该指针变量所指系统区某存储单元进行赋值运算,将改变系统区该单元中内容,可能导致系统的崩溃。所以,指针变量定义后必须赋某个变量的地址或0。

从上面例子可以看出,给指针变量赋初值有三种情况:

第一种情况是用取地址运算符"&"将变量地址赋给指针变量。如:p=&a;

第二种情况是将一个指针变量中的地址赋给另一个指针变量,如:p1=p;

第三种情况是给指针变量赋空值0,如q=0;表示该指针变量不指向任何变量。

经过赋值后,使指针变量p、p1指向变量a,q不指向任何单元,如图7.2所示。

(3)指针变量的引用

指针变量的引用是通过指针运算符"*"实现。在上例中,*p与*p1均表示变量a,因此,第一个输出语句cout<<*p 被执行后,输出的是变量a的内容100。而赋值语句*p1=200;是通过指针变量p1间接的将数据200赋给变量a,因此,第二个输出语句中,a 、*p、*p1同为赋值后变量a的内容200。

(4)指针变量初始化

指针变量可以象普通变量一样,在定义指针变量时赋初值,如上例中,定义指针变量p 的语句可写成:int *p=&a;

7.1.3 指针变量的运算

指针变量的运算有三种:赋值运算、关系运算与算术运算。

1.指针变量赋值运算

指针变量赋值运算就是将变量的地址赋给指针变量,上节内容已介绍过,现再举一例加深读者对指针变量赋值运算的理解。

【例7.2】定义三个整型变量a1、a2、a3,用指针变量完成a3=a1+a2的操作。再定义两个实型变量b1、b2,用指针变量完成b1+b2的操作。

# include

void main (void)

{ int a1=1,a2=2,a3;

int *p1,*p2,*p3;

float b1=12.5,b2=25.5;

float *fp1,*fp2;

p1=&a1;

p2=&a2;

p3=&a3;

*p3= * p1 + *p2;

fp1=&b1;

fp2=&b2;

cout<<" *p1="<<*p1<<'\t'<<" *p2="<<*p2<<'\t' <<"*p1+*p2="<<*p3<<'\n';

cout<<"a1="<

相关文档
最新文档