我不明白 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
返回 24,因为您有 6 个整数,每个整数占用 4 个字节。
首先,您必须记住,arrays
和pointers
是不同的。
如果是数组,sizeof()
返回整个数组的大小,在您的示例中为 24 个字节,因为您有 6 个 int
元素,每个元素为 4 个字节。
现在看看这个代码片段:
int *data = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);
在这种情况下,sizeof()
将返回指针的大小,而不是数组的大小。指针在 32 位应用中为 4 个字节,在 64 位应用中为 8 个字节。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 不明白使用双指针 (**) 创建 2d 动态数组
- 我不明白我的错误需要返回一个指针数组
- c ++ 2d 数组和指向指针的指针 - 我不明白这段代码
- 我不明白数组名称是如何指向数组的指针
- 我不明白这个 c++ 数组声明
- 我成功地在堆中分配了一个指向3个int型数组的指针,但我仍然不明白对数组的访问是如何工作的