int arr[4][2][3][6];
当运行 gdb 来检查 arr 的类型时(数组名)
(gdb) wha arr
type = int [4][2][3][6]
据我所知,在表达式中(例如用作“sizeof”或“&”的操作数)时,编译器将数组名视为指向数组第一个元素的指针。所以,我期待type = int (*)[2][3][6]
有趣的是,如果我检查这个:
(gdb) wha arr+1
type = int (*)[2][3][6]
您会看到输出符合预期!这里我想知道它只是gdb的一种显示风格还是数组名称的类型真的是int [4][2][3][6]
?
顺便说一句,我猜为什么 gdb 说类型是int [4][2][3][6]
,你看,
(gdb) wha &arr
type = int (*)[4][2][3][6]
所以, is&arr
是指向int [4][2][3][6]
然后 arr 应该是int [4][2][3][6]
....