【C语言】指针总结|* 和 & 认识|对解引用(*)认识
⚔ 上述总结
指针就是变量,用来存放地址的变量。(存放在指针当中的值都是会被当做是地址来处理)
还有下列②个问题如下↓
- 一个小的单元到底是多大(①个字节)
- 如何进行编址。
经过仔细的计算,一个字节(⑧比特位)对应其一个地址是比较合适的(①字节等于①地址)
指针就是用来存储地址的,地址是唯一表示一块地址空间。
指针大小在32位的平台上是④个字节,在64位上的平台是⑧个字节。
在32位平台上产生的地址线就是由 32个0&1组成的地址线,在64位平台上产生的地址线就是由64个二进制0&1组成的地址线。
💣 * 和 & 认识
假设有一个 int 类型的变量 a,pa 是指向它的指针,那么
*&a
和&*pa
分别是什么意思呢?
*&a
可以理解为*(&a)
,&a
表示取变量 a 的地址(等价于 pa),*(&a)
表示取这个地址上的数据(等价于 *pa),绕来绕去,又回到了原点,*&a
仍然等价于 a
&*pa
可以理解为&(*pa)
,*pa
表示取得 pa 指向的数据(等价于 a),&(*pa)
表示数据的地址(等价于 &a),所以&*pa
等价于 pa
💣 对解引用(*)认识
表示乘法,例如
int a = 3, b = 5, c; c = a * b;
这是最容易理解的。表示定义一个指针变量,以和普通变量区分开,例如
int a = 100; int *p = &a;
表示获取指针指向的数据,是一种间接操作,例如
int a, b, *p = &a; *p = 100; b = *p;
表示获取指针指向的数据,是一种间接操作。这里我来举出一个代码例子↓
运行结果🖊
这里大家可以好好思考下为什么,为什么运行结果是这样看看能不能说出来。这样你才能真正的掌握这些知识点。
- 点赞
- 收藏
- 关注作者
评论(0)