我遇到了问题,因为我不知道sizeof运算符的工作原理。谁能告诉我为什么它给我4个以下代码?
int tab[2] = {1, 5};
int *filePathTab[1] = {NULL};
filePathTab[0] = tab;
cout << sizeof(filePathTab[0]);
答案 0 :(得分:4)
filePathTab[0]
以int *
为元素。您计算机上的sizeof
和int *
为4个字节。如果您想知道sizeof
int *
所指向的int
,cout << sizeof(*filePathTab[0]);
,您必须取消引用指针:
sizeof
可能会发现您计算机上的int
和{{1}}也是4个字节。
答案 1 :(得分:2)
因为filePathTab[0]
的类型为int*
(filePathTab
是一个指针数组,您正在考虑第0个元素)以及指向int
的指针的大小机器恰好是4 字节。
答案 2 :(得分:2)
Sizeof为您提供参数的大小(以字节为单位)。由于指向int的指针长度为4个字节(这取决于系统),因此sizeof的输出为4。