运算符和多维表的大小

sizeof operator and multidimensional table

本文关键字:运算符      更新时间:2023-10-16

>我遇到了一个问题,因为我不知道 sizeof 运算符是如何工作的。谁能告诉我为什么它在下面的代码中给我 4 分?

int tab[2] = {1, 5};
int *filePathTab[1] = {NULL};
filePathTab[0] = tab;
cout << sizeof(filePathTab[0]);

filePathTab[0]有一个int *作为其元素。 计算机上int * sizeof为 4 个字节。 如果你想知道int *指向什么sizeof,一个int,你必须取消引用指针:

cout << sizeof(*filePathTab[0]);

事实证明,计算机上int sizeof也是 4 个字节。

因为

filePathTab[0]int*类型(filePathTab是一个指针数组,所以您正在考虑第 0 个元素),并且指向计算机上int的指针的大小恰好为 4 个字节

Sizeof 为您提供参数的大小(以字节为单位)。由于指向 int 的指针长度为 4 个字节(这取决于系统),因此 sizeof 的输出为 4。