icon-rss-large

外贸 | | 登录

订阅我们

怎样使一个指针变量指向另一个变量呢?

Published on 2022-09-04 by zhushican

C++, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">指针变量的引用

C++, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">怎样使一个指针变量指向另一个变量呢?只需要把被指向的变量的地址赋给指针变量即可。首先,我们介绍有两个与指针变量有关的运算符:

(1)&取地址运算符。

(2)*指针运算符(或称间接访问运算符)。

例如:&a为变量a的地址,*p为指针变量p所指向的存储单元。

利用这两个运算符,我们来学习怎样引用指针来访问指针所指向的数据。

怎样使一个指针变量指向另一个变量呢?

 

例如:

    pointer_1=&i;              //将变量i的地址存放到指针变量pointer_1

    pointer_2=&j;              //将变量j的地址存放到指针变量pointer_2


这样,pointer_1就指向了变量i,pointer_2就指向了变量j,如图7-2所示:

怎样使一个指针变量指向另一个变量呢?

7-2指针变量

7-1】通过指针变量访问整型变量。

#include<iostream.h>

int main()

{

int a,b,t;                //定义整型变量a,b

int *p1,*p2;              //定义指针变量*p1,*p2

a=100;b=10; //a,b赋值

p1=&a;                   //把变量a的地址赋给p1

p2=&b;

cout<<a<<","<<b<<endl;                  //把变量a的地址赋给p2

cout<<*p1<<","<<*p2<<endl;  //输出*p1*p2的值

t=*p1;

*p1=*p2;

*p2=t;

cout<<a<<","<<b<<endl;                  //把变量a的地址赋给p2

cout<<*p1<<","<<*p2<<endl;  //输出*p1*p2的值

return 0;

}


运行结果为

100,10                                         //ab的值

100,10                                         //*p1*p2的值

10,100                                //交换后ab的值

10,100                                        //交换后*p1*p2的值


在上例中,我们通过p1=&a;与p2=&b;这两行语句,建立起了p1, p2与a, b之间的关联,p1指向a,p2指向b,那么*p1的值实际就是a的值,*p2的值实际就是b的值。因此,当我们交换*p1与*p2的值之后,a与b的值也同时发生了改变。

一般的C++编译系统为每一个指针变量分配4个字节的存储单元,用来存放变量的地址。

指针变量是一种特殊的变量,它和以前学过的其他类型的变量的不同之处是:用它来指向另一个变量。为了表示指针变量和它所指向的变量之间的联系,在C++语言中用“*”符号表示指向,例如,i_pointer是一个指针变量,而*i_pointer表示i_pointer所指向的变量。如图7-3所示:

怎样使一个指针变量指向另一个变量呢?

7-3指针变量和它所指向的变量之间的联系

对于这样一种指向关系,下面两个语句作用相同:

i=3;

*i_pointer=3;


Gravatar

About

Read More...
0
Comments
Leave a Comment