gpt4 book ai didi

c++ - 在初始化的未知大小数组中使用 sizeof() - C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:10 35 4
gpt4 key购买 nike

我是 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
****************************************************************

**编辑:感谢您的回复。 飞走了 :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] )

sizeof( YouArray ) / sizeof( ElementType )

关于c++ - 在初始化的未知大小数组中使用 sizeof() - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25629013/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com