我声明了一个静态字符数组,然后将它传递给一个函数。怎么拿号。函数内部数组的字节数?
最佳答案
使用具有非类型模板参数的函数模板:
template <size_t N>
void func(char (&a)[N]) {
for (int i = 0; i < N; ++i) {
cout << "a[" << i << "] = " << a[i] << endl; // Or whatever you want to do
}
}
打电话:
char myArray[500]; // Or "static char myArray[500]", if you want
func(myArray);
这个函数的一个新拷贝将针对每个不同大小的数组被实例化,所以如果你用许多不同大小的数组调用它,你会得到一些代码膨胀。但事实并非如此。
关于c++ - 静态数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/453099/