NOW*_*OWA 5 c++ arrays types sizeof
我是 C++ 编程新手,我正在尝试获取数组的大小。谁能解释一下为什么会发生这种情况?我尝试在 runnable.com 中运行代码,并显示相同的结果。
我确信这不是正确的方法。如果可能的话,您能建议任何简单的方法来获取此类数组的大小吗?
#include <iostream>
using namespace std;
int main ()
{
int set1[] = {1, 9, 3, 50, 31, 65};
int set234[] = {3, 5, 5};
cout << sizeof(set1) << endl;
cout << sizeof(set234) << endl;
cout << "When sizeof() return value is divided by 4"<< endl;
cout << sizeof(set1) / 4 << endl;
cout << sizeof(set234) / 4 << endl;
return 0;
}
****************************************************************
Output:
24
12
When sizeof() return value is divided by 4
6
3
****************************************************************
Run Code Online (Sandbox Code Playgroud)
**编辑:谢谢您的回复。飞走了:D
数组的大小等于其所有元素的大小之和。正如在您的示例中,您处理 int 类型的数组,那么系统中的 sizeof( int ) 似乎等于 4,因此,由于第一个数组有 6 个元素,因此它的大小等于6 * sizeof( int )
24。第二个数组的大小等于3 * sizeof( int )
12。例如,如果系统中的 sizeof( int ) 等于 8,则第一个数组的大小将等于 48 ( 6 * sizeof* int ) ),第二个数组的大小将等于 24 ( 3 * sizeof( int ) )。
因此,如果您想知道数组中有多少个元素,您可以按以下方式计算
sizeof( YouArray ) / sizeof( YourArray[0] )
Run Code Online (Sandbox Code Playgroud)
或者
sizeof( YouArray ) / sizeof( ElementType )
Run Code Online (Sandbox Code Playgroud)