有没有办法反省数组的大小?

Wil*_*mKF 2 c++ arrays introspection

在C++中给出一个像这样的数组:

unsigned char bogus1[] = {
  0x2e, 0x2e, 0x2e, 0x2e
};
Run Code Online (Sandbox Code Playgroud)

有没有办法反省bogus1找出是四个字符长?

Ale*_*lli 10

当然:

#include <iostream>

int main()
{
  unsigned char bogus1[] = {
    0x2e, 0x2e, 0x2e, 0x2e
  };

  std::cout << sizeof(bogus1) << std::endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

发出声音4.更一般地说,sizeof(thearray)/sizeof(thearray[0])是数组中的项目数.但是,这是一个编译时操作,只能在编译器知道 "项目数"的情况下使用(例如,在接收数组作为参数的函数中).为了更加通用,您可以使用std::vector而不是裸阵列.