C++指针【cherno课程学习】

[复制链接]
发表于 2023-1-8 21:37:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
定义:

指针是一个整数,一种存储内存地址的数字

  • 内存就像一条线性的线,在这条街上的每一个房子都有一个号码和地址
  • 类似比喻成电脑,这条街上每一个房子的地址 是一个字节
  • 我们需要能够准确找到这些地址的方法,用来读写操作
因此,指针就是这些地址。不要考虑类型,无论是什么类型的指针,都是用来保存地址的整数。
使用
  1. int main() {
  2.     void* ptr = nullptr;
  3. }
复制代码
表示不在乎类型的空指针,我们无法对空指针进行读取和写入
  1. int main() {
  2.     int var = 8;
  3.     void* ptr = &var;
  4. }
复制代码
用&符号取得var的地址,并赋给ptr
对程序进行Debug,可以得到var的值为8,ptr的的值是0xfd183ffcc4,本文使用的clion,在memory中输入,可以被带到内存区域。

总结来说,它本身不保存所谓变量的数字,指针就是一个保存地址的数,仅此而已
解引用

在指针前增加*可以进行解引用。
  1. int main() {
  2.     int var = 8;
  3.     void* ptr = &var;
  4.     *ptr = 10;
  5. }
复制代码
上述代码有错误,因为将10赋值给*ptr后,内存不知道该分配多少字节,是4?还是8?……
这时候就需要类型了,用来告诉编译器,他需要多少字节
[code]int main() {    int var = 8;    int* ptr = &var;    *ptr = 10;    std::cout
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表