【发布时间】:2023-03-12 06:30:02
【问题描述】:
为什么在 C++ 中 sizeof(array) 对于 bool array 的行为方式与包含其他类型数据的数组不同?
版本: 我问是因为
sizeof(boolarray)/sizeof(boolarray[0])
不要给出布尔数组的大小。
但是这个简单的代码会打印出来:
4
1
/////////////////////////
#include<iostream>
using namespace std;
void printBoolArray(bool* boolarray){
cout<<sizeof(boolarray)<<"\n";
cout<<sizeof(boolarray[0]);
}
int main(){
bool boolarray[10]={false};
printBoolArray(boolarray);
}
知道我理解函数中的 sizeof 给出了引用的对象的大小,这是我使用 c++ 的 9 天,抱歉这个愚蠢的问题,现在很明显
【问题讨论】:
-
关心扩展以不同的方式表现?
-
sizeof(array) 乘以 sizeof(bool) 中的数组大小,这取决于实现。让我们说它是一个字节。你期待的结果是什么?
-
这里有一些证明尺寸技巧仍然有效的证据:liveworkspace.org/code/3PX678%240
-
您是否尝试过使用任何其他数据类型?
-
@Qbik:我在你发布代码之前回答了你的问题。