469826336 发表于 2019-3-20 20:14:57

c++数组作为形参退化为指针怎么得到数组的大小

今天看到一道java的题目把数组作为形参之后调用了它的length可以得到数组大小,请问c++里面当数组作为形参时有办法得到它的大小吗,如果不能是不是只能再加一个形参用来表示它的大小

Croper 发表于 2019-3-20 20:43:50

一定要单数组不传递大小的话可以用模板#include <iostream>

template <int N> int GetArrSize(int(&a)) {
        return sizeof(a);
}

int main() {
        int a[] = { 1,2,3,4,5 };
        std::cout << GetArrSize(a);
        system("pause");
}

Croper 发表于 2019-3-20 20:46:00

另外,如果是c++。。stl中的vector可以在99%以上的情况下代替数组,把数组忘了吧,直接a.size()多方便

My_A 发表于 2019-3-20 21:29:26

{:10_256:}过来学习

BngThea 发表于 2019-3-21 08:42:23

c/c++中一般会同时传递长度
页: [1]
查看完整版本: c++数组作为形参退化为指针怎么得到数组的大小