c++ - 静态数组的大小

标签 c++ arrays size

我声明了一个静态字符数组,然后将它传递给一个函数。怎么拿号。函数内部数组的字节数?

最佳答案

使用具有非类型模板参数的函数模板:

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/

相关文章:

javascript - 对 JSON 数组进行过滤和排序

twitter-bootstrap - Bootstrap 3 : Reduce height of list-group-item in list-group

c++ - 如果枚举不能放入整数类型会发生什么?

c++ - 为什么添加虚拟方法会增加 C++ 中的类大小?

java - 从 Java : Possible ? 调用 WinMain 还有其他方法吗?

java - 只打印那些是 Java 数组中另一个数字的两倍的数字

C++ 一个一个地传递一个结构数组——如此简单,但我被难住了

android - 如何在 Android 中获取缓存大小

c++ - ocl::CRException 的类型信息

mysql 中的 c++ 函数 make_scrambled_pa​​ssword 到 mariadb