对c++中指针理解的记录 int main(){int a 8;int *p a;int **p p;return 0;}此处三个变量都是储存于栈大概会这样 此处int看着是8字节是windows下的clang的内存对齐方式实际为4字节 指针我觉得可以看成比如int *p 我储存了一个地址这个地址我想把他按照int类型操作而且你最好用int类型传数据给我 int* *p 也是 就是告诉你我这个地址大概率存的是一个int*类型元素的地址我只是存了一个地址他是64位 也就是8字节 有2^64次方种不同的值的可能 完全能覆盖需求了 之前聊天一直在聊那个void* 的事其实指针的类型只是影响像是操作之类的操作距离我可以用void* 接收一个地址通过1个字节1个字节步进的方式操作元素的比特但是还要考虑编译debug模式的debug优和release时候存在一些存储上风格的不同。如果实在需要地址连续请使用struct。这部分想法来自【【辟谣】C根本没有堆和栈】 【辟谣】C根本没有堆和栈​