形参里的“char *”跟“char &”是什么意思?效果一样吗?

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:06:21

如果是char *类型的,你传入的时候必须是一个char变量的地址或者指针。而如果形参是char &就表示参数是引用类型的,你直接写变量名字就可以了。二者效果实际是一样的,但是后者可以保证不会有传入NULL的情况,处理起来更安全一些。

两个不是一个东西,甚至不能混用
void test(char &str)与void test(char str)
意思差不多,都是将一个char类型的实际参数进行调用
前者是引用调用——对str的任何改变就是对实际参数的改变
后者是值的调用——完全COPY一个与实际参数值相等的str,任何对str的改变与实际参数无关

void test(char *str)
则是调用了一个指针(实际参数),完全COPY其地址,生成了另一个指针。

假设形参中:char *a char &b

a 代表的是一个特定的内存首地址

b 代表的是一个特定的内存首地址开始,长度为一个char型长度的【数据】

行参中*表示指针,&表示引用 ,指针是引用地址,而引用简单的讲就是是变量的别名;

行参中*表示指针,&表示引用