我不明白 sizeof() 和数组给出的值
I don't understand value given with sizeof() with Arrays
在此代码片段中,我得到的输出是 24。这是为什么?
int data[] = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);
cout << n << endl;
sizeof
returns 24 因为你有 6 个整数,每个整数占 4 个字节。
首先要记住arrays
和pointers
是不一样的
在数组的情况下,sizeof()
returns 是整个数组的大小,在您的示例中为 24 个字节,因为您有 int
的 6 个元素,并且每个是4个字节。
现在看看这段代码:
int *data = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);
在这种情况下,sizeof()
将 return 指针的大小,而不是数组的大小。指针在 32 位应用程序中为 4 个字节,在 64 位应用程序中为 8 个字节。
在此代码片段中,我得到的输出是 24。这是为什么?
int data[] = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);
cout << n << endl;
sizeof
returns 24 因为你有 6 个整数,每个整数占 4 个字节。
首先要记住arrays
和pointers
是不一样的
在数组的情况下,sizeof()
returns 是整个数组的大小,在您的示例中为 24 个字节,因为您有 int
的 6 个元素,并且每个是4个字节。
现在看看这段代码:
int *data = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);
在这种情况下,sizeof()
将 return 指针的大小,而不是数组的大小。指针在 32 位应用程序中为 4 个字节,在 64 位应用程序中为 8 个字节。