C函数传数组做参数时,怎样传值而不是传地址
- C/C++ code
#include <stdio.h>void test(int p[]){ p[0]=1; printf("%d",p[0]);}int main(){ int p[1]; p[0]=0; printf("%d",p[0]); test(p); printf("%d",p[0]);}以上程序输出011,我知道蜕化为指针的问题
希望进test的时候把数组p复制一份,而不是改变指针p指向的值,怎么用最简单的方法实现?
[解决办法]
最简单的做法是把这个数组定义在一个结构内,然后将该结构作为一个参数传入。
[解决办法]
- C/C++ code
template<int N>void test(int (&p)[N]);