和田红玉的鉴别方法:[C语言]为什么swap函数返回的是char类型?

来源:百度文库 编辑:高校问答 时间:2024/04/28 06:13:22
#include"stdio.h"
#include"string.h"
char swap(char *p1,char *p2) /*定义时我觉得不需要写函数返回值类型吧?因为没有这个必要呀!此函数没有返回值*/
{
char *temp[20];
strcpy(temp,p1);
strcpy(p1,p2);
strcpy(p2,temp);
}

main(){
char *str1[20],*str2[20],*str3[20];
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0)
swap(str1,str2);

if(strcmp(str1,str3)>0)
swap(str1,str3);

if(strcmp(str2,str3)>0)
swap(str2,str3);

printf("%s\n%s\n%s\n",str1,str2,str3);

}

你自己定义的,随便啊,也可以定义成void,看你喜欢了。

如果不定义是char或者viod类型的话系统就会默认是int类型的.对于形参是指针类型的,一般是不用return返回也是可以的.只要不改变指针变量的值,也就是它的地址值,就会满足值的单向传送的条件,如果改变了就不得了.比如说有这样的语句:
int aaa(int *p)
{int *q=100;
p=q;
return p;
}
main()
{int *s=655;
aaa(s);/*没有办法返回,在这里产生错误*/
}
如果把aaa函数的改成*p=*q;就可以了