指针vs指针变量
- 一、指针和指针变量的含义
- 1、变量的“左值”和“右值”
- 2、什么是指针?
- 3、什么是指针变量?
- 二、如何看待“指针就是指针变量”这种说法
- 三、为什么要存在指针?
- 四、对指针进行解引用操作的本质
一、指针和指针变量的含义
1、变量的“左值”和“右值”
2、什么是指针?
指针的本质就是地址!地址的本质是什么?地址就是数据。
3、什么是指针变量?
指针变量的本质是变量,是用来存放地址的!也就是说指针变量是用来存放数据的。
二、如何看待“指针就是指针变量”这种说法
从严格意义上来说,指针和指针变量是不同的,指针就是地址值,是一个数据,而指针变量是C语言中的变量,要在待定区域开辟空间,要用来保存地址数据,还可以被取地址。
三、为什么要存在指针?
根本原因是为了提高CPU的寻址效率。
四、对指针进行解引用操作的本质
(int a=10; int* p=&a; *p=20;)
p的完整理解是,取出p中的地址,访问该地址指向的内存单元(空间或者内容)(其实是通过指针变量访问,本质是一种间接寻址的方式)
口诀:对指针解引用,就是指针指向的目标,所以p就是a(其中的p是对应的“右值”,也就是p变量的内容)。
下面再分享一个非常有趣的有关解引用操作的代码。