指针变量访问指向变量

通过前面的学习,我们知道把变量的地址存放到指针变量中了,让指针变量指向某个变量。例如:

int a;          //定义int类型的变量a;

int *p3;        //定义指针变量p3,它是 int* 类型,存放int类型变量的地址;

p3 = &a;    //把变量a的地址赋给指针变量p3,指针变量p3指向变量a;

       此时,p3指针变量存放了变量a的地址,那么,怎么样通过p3指针变量访问变量a,获取变量a的数据?

       在C语言中提供了“指针取值运算符*”,就是在指针变量前面加上指针取值运算符*,就是对指针变量进行“降级”,变成指针变量所指向的变量。注意:指针取值运算符*,我们也称为:指针降级运算符。

       例如指针变量p3指向变量a,那么,*p3就是对指针变量p3进行“降级”,变成指针变量p3所指向的变量。那么,指针变量p3指向变量a;所以,*p3就变成了变量a;所以,有如下图:

       所以,可以通过“指针取值运算符*”,对指针变量进行降级,转换成指针变量所指向的变量。程序测试例子如下:

       程序运行结果如下:

       可以看到,我们定义了变量a,取出变量a的地址,赋给指针变量pa;那么,指针变量pa就指向了变量a。

       然后,再通过指针取值运算符“*”,对指针变量pa进行降级,把*pa转换成指针变量pa所指向的变量a。

       那么,*pa就是变量a;所以,执行 a1 = *pa; 就是把变量a的值赋给变量a1;最终,发现变量a1存放的数据,就是变量a存放的数据。

       经过本节课的学习,我们知道了指针变量的定义和使用,那么,可以总结以下几点:

(1) 指针变量就是一个变量,它有自己的存储空间;

(2) 指针变量的存储空间,存放的是某个变量的地址;例如:

int a;

char* pa = &a;

       那么,指针变量pa的存储空间,存放了变量a的地址。此时,称指针变量pa指向变量a;

(3) 通过“指针取值运算符*”可以对指针变量进行“降级”,把指针变量转换为它所指向的变量;例如:

int a;

char* pa = &a;

*pa = 'A';

       那么,*pa表达式就表示指针变量pa所指向的变量a,最终,就是给变量a赋值'A'字符。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韦凯峰Linux编程学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值