首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教,函数入参类型为字符串指针的引用(char* &),传参数时为什么不能串堆中申请的数组例如char a[20],内详

2012-03-21 
请问,函数入参类型为字符串指针的引用(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不支持!
[解决办法]
不知道是不是这个意思

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类型无异】
理解了这个,就知道传变量和传引用的区别了 

热点排行