首页IT科技c++指针用法(C++指针【cherno课程学习】)

c++指针用法(C++指针【cherno课程学习】)

时间2025-07-31 03:23:16分类IT科技浏览4297
导读:定义: 指针是一个...

定义:

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

内存就像一条线性的线                    ,在这条街上的每一个房子都有一个号码和地址 类似比喻成电脑      ,这条街上每一个房子的地址 是一个字节 我们需要能够准确找到这些地址的方法         ,用来读写操作

因此                    ,指针就是这些地址            。不要考虑类型         ,无论是什么类型的指针      ,都是用来保存地址的整数                   。

使用

int main() { void* ptr = nullptr; }

表示不在乎类型的空指针                    ,我们无法对空指针进行读取和写入

int main() { int var = 8; void* ptr = &var; }

用&符号取得var的地址            ,并赋给ptr

对程序进行Debug   ,可以得到var的值为8                    ,ptr的的值是0xfd183ffcc4               ,本文使用的clion,在memory中输入                 ,可以被带到内存区域        。

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

解引用

在指针前增加*可以进行解引用         。

int main() { int var = 8; void* ptr = &var; *ptr = 10; }

上述代码有错误                    ,因为将10赋值给*ptr后      ,内存不知道该分配多少字节         ,是4?还是8?……

这时候就需要类型了                    ,用来告诉编译器         ,他需要多少字节 int main() { int var = 8; int* ptr = &var; *ptr = 10; std::cout << var << std::endl; // 结果为10 }

可以看到编程0a      ,0a是十六进制的10

堆上创建

int main() { char* buffer = new char[8]; //对指针进行操作 delete[] buffer; } 我们知道char是1byte                    ,上面这句话是告诉编译器            ,给我分配8个字节的内存   , 与此同时                    ,返回了一个叫buffer的指针指向那块内存的开始位置                  。 在最后               ,我们需要使用delete[] buffer来删除指针           。

指针的指针

int main() { char* buffer = new char[8]; char** ptr = &buffer; delete[] buffer; std::cin.get(); }

简单来说指针的指针,就是定义一个新的指针                 ,用来指向指针的地址      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win10蓝屏卡在100(Win11系统开机蓝屏卡在100%的解决方法) 钉钉电脑版收藏(钉钉pc版收藏夹在哪_钉钉收藏信息操作流程展示)