在C++中,给出这样的数组:
unsigned char bogus1[] = {
0x2e, 0x2e, 0x2e, 0x2e
};
有没有办法反射(reflection)bogus1找出四个字符长吗?
最佳答案
当然:
#include <iostream>
int main()
{
unsigned char bogus1[] = {
0x2e, 0x2e, 0x2e, 0x2e
};
std::cout << sizeof(bogus1) << std::endl;
return 0;
}
发出
4
。通常,sizeof(thearray)/sizeof(thearray[0])
是数组中的项目数。但是,这是一个编译时操作,只能在编译器知道关于“项目数”的情况下使用(例如,在不接受将数组作为参数的函数中)。为了更通用,可以使用std::vector
而不是裸数组。关于c++ - 有没有办法反射(reflection)一个数组的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2889202/