这句话加不加*对调用时的影响是什么
char* max(char *a,char *b){
return strcmp(a,b)>=0?a:b;
}
char max(char a,char b){
return strcmp(a,b)>=0?a:b;
}
加星意味着你返回的对象是一个指针
如果你要比较的对象是字符串,那输入的是字符串的指针,返回的也是指针
而如果不加星,你输入输出都是char,char是要直接比较大小的,不能作为strcmp的参数
而且函数功能也从比较两个字符串大小变成比较两个char的大小,功能都变了
在 C++ 中,加号号和不加星号的影响是在调用函数时的参数传递方式的不同。
在调用函数时,如果函数的返回类型是指针,则调用时必须加上星号。例如,在第一个函数中,如果要调用函数并将返回值赋值给一个字符指针变量,可以使用如下代码:
char* result = max("hello", "world");
如果函数的返回类型是字符,则调用时可以不加星号。例如,在第二个函数中,如果要调用函数并将返回值赋值给一个字符变量,可以使用如下代码:
char result = max('h', 'w');
*在C/C++中表示指针变量
指针变量存储的是地址
定义:int *a;
int b = 10;
int *a = &b;
这里的&b表示变量b的地址
int b = 10;
int *a = &b;
cout << *a << endl;
这里cout里的*a表示变量b的值10
char* max(char *a,char b)里的必须加,不然就从比较字符串大小变成比较字符大小了