请教,函数入参类型为字符串指针的引用(char* &),传参数时为什么不能串堆中申请的数组例如char a[20],内详
请问,函数入参类型为字符串指针的引用(char* &),传参数时为什么不能串堆中申请的数组例如char a[20],内详
一个函数 fun_a(char* & array);
我申请了一个数组 char array[64];
请问为什么不能fun_a(array);这样使用呢?
如果我就是想通过函数改变字符串数组array[64]里的内容,我应该如何做呢?
请指教,谢谢!
------解决方案--------------------
fun_a(array);
array不是指针,而是数组。
正确的做法是
fun_a(char* (&array)[64]);
如果你感觉这样限定了传入的数组大小必须是64,你可以改成这样
template<int Size>
xxx fun_a(char* (&array)[Size]); //VC6不支持!
------解决方案--------------------
不知道是不是这个意思
一个函数 fun_a(char* & array);
我申请了一个数组 char array[64];
请问为什么不能fun_a(array);这样使用呢?
如果我就是想通过函数改变字符串数组array[64]里的内容,我应该如何做呢?
请指教,谢谢!
------解决方案--------------------
fun_a(array);
array不是指针,而是数组。
正确的做法是
fun_a(char* (&array)[64]);
如果你感觉这样限定了传入的数组大小必须是64,你可以改成这样
template<int Size>
xxx fun_a(char* (&array)[Size]); //VC6不支持!
------解决方案--------------------
不知道是不是这个意思
- C/C++ code
char arr[50]; for (int i=0;i<50;i++) arr[i]='A'+i; char * ptr_a = arr; char * &ptr_c = ptr_a; fun_a(ptr_c);
------解决方案--------------------
把arr通过指针辗转一下成引用..
------解决方案--------------------
指针也只是一个变量,跟int,char类型无异】
理解了这个,就知道传变量和传引用的区别了