家人们好呀!!!前面几篇文章,我们让计算机学会了“组团打怪”(函数),代码结构瞬间从大学生宿舍升级成了五星级酒店。但你可能注意到了一个问题——目前为止,我们的数据都是“住”在变量里,而变量由编译器自动分配和回收。这就像你住酒店,房间是前台给你安排的,你只管入住和退房,从来不需要知道房间具体在酒店的哪个位置。然而,C++之所以是C++,就是因为它给了你一种“超级权力”——直接知道数据住在内存的哪个位置,并且能通过这个位置去访问它。这种权力,就掌握在一个叫指针的东西手里。我知道,指针这个词在编程界的名声堪比《哈利·波特》里的伏地魔——大家提起它时都压低声音,面露惧色。指针被贴上了“难学”、“容易出错”、“段错误制造机”等标签。但真相是:指针并不难,它只是被讲得很难。一旦你理解了它的本质——不过就是一个存着内存地址的变量——你就会发现它其实是个非常直白、非常强大的工具。咱们就来彻底揭开指针的面具。从地址的本质,到指针的声明和使用,再到动态内存分配,让你从此不再害怕指针。一、地址:内存世界的“门牌号”1.1 内存长什么样?把计算机的内存想象成一个超级巨大的小区。这个小区里有几十亿个房间(内存单元),每个房间大小是1个字节。每个房间都有唯一的门牌号,这个门牌号就叫地址。