C函数传数组做参数时,怎样传值而不是传地址,该如何处理
C函数传数组做参数时,怎样传值而不是传地址
以上程序输出011,我知道蜕化为指针的问题
希望进test的时候把数组p复制一份,而不是改变指针p指向的值,怎么用最简单的方法实现?
------解决方案--------------------
最简单的做法是把这个数组定义在一个结构内,然后将该结构作为一个参数传入。
------解决方案--------------------
- 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]);