贝利信息

Golang指针数组与数组指针有什么区别_Golang两者差异与适用场景

日期:2025-12-03 00:00 / 作者:P粉602998670
指针数组是元素为指针的数组,如[3]int;数组指针是指向整个数组的指针,如[3]int。二者类型、内存布局、使用方式及语义均不同,不可混用。

指针数组是指一个数组,它的每个元素都是指针;数组指针是指一个指针,它指向的是整个数组(而非单个元素)。二者类型、内存布局、使用方式和语义完全不同,不能混用。

类型写法与本质区别

Go 中类型声明顺序从右向左读,这是理解的关键:

内存与访问方式不同

假设定义:

arr := [3]int{10, 20, 30}
ptrArr := [3]*int{&arr[0], &arr[1], &arr[2]}
arrPtr := &arr

常见使用场景

容易混淆的点

基本上就这些。记牢“指针在前还是在后”,再结合用途想一想:是要存一堆地址?还是只想高效传一个大数组?选对类型,代码更准也更稳。