指针变量访问指向变量

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

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;所以,有如下图:

指针变量访问指向变量_第1张图片

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

指针变量访问指向变量_第2张图片

       程序运行结果如下:

指针变量访问指向变量_第3张图片

       可以看到,我们定义了变量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

你可能感兴趣的:(Linux,系统编程课程,Linux,C,程序设计课程,Linux,C++程序设计课程)