我不明白 sizeof() 和数组给出的值

I don't understand value given with sizeof() with Arrays

本文关键字:数组 明白 sizeof      更新时间:2023-10-16

在这个代码片段中,我得到的输出是24。为什么?

int data[] = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);
cout << n << endl;

sizeof返回 24,因为您有 6 个整数,每个整数占用 4 个字节。

首先,您必须记住,arrayspointers是不同的。

如果是数组,sizeof() 返回整个数组的大小,在您的示例中为 24 个字节,因为您有 6 个 int 元素,每个元素为 4 个字节。

现在看看这个代码片段:

int *data = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);

在这种情况下,sizeof()将返回指针的大小,而不是数组的大小。指针在 32 位应用中为 4 个字节,在 64 位应用中为 8 个字节。