有没有办法知道 char* 数组中的元素数量?
我的代码是:
char* inputOptions[]={
NULL,
"first sentence",
"second sentence"}
for(int j=0;j<3;j++)
cout<<inputOptions[j]<<endl;
我想将'3'更改为依赖于'arr'的一些表达式。有没有办法这样做?
是的,你可以写
std::distance(std::begin(inputOptions), std::end(inputOptions));
在 C++03 中,使用
sizeof inputOptions / sizeof inputOptions[0]
但是,在 C++11 中,您最好使用以下范围访问数组:
for (auto option: inputOptions)
cout << option << endl;
const char * inputOptions[] = {
NULL,
"first sentence",
"second sentence" };
const int numOptions = sizeof(inputOptions) / sizeof(inputOptions[0]);
您可以使用sizeof()
静态数组,它会给您以字节为单位的大小。如果你将它除以指针大小,你将得到数组的大小:
siz = sizeof(inputOptions)/sizeof(char*);