回复 6楼 wp231957
问一个问题:
#include <stdio.h>
#define N 10
void sort(char a[])
{
int i,j;
char c;
for(i=0;i<N;i++)
{
for(j=0;j<N-1;j++)
if(a[j]<a[j+1])
{c=a[j];a[j]=a[j+1];a[j+1]=c;}
}
}
main()
{
char str[N];
int i;
printf("input 10 character:\n");
for(i=0;i<N;i++)
scanf("%c",str+i);
sort(str);
printf("input new array:\n");
for(i=0;i<N;i++)
printf("%c",*(str+i));
printf("\n");
}
为什么上面那个函数“ void sort(char a[]) ”要定义成void?这是我写的程序实现十个字符的比较。
我的问题是我的函数“sort(str);”函数实参是数组名,被调用函数形参也是数组,这样,相当于两个数组对同一段内存操作。在被调用函数中是对单元内容的操作。这个时候我就不明白了,我没有return返回语句,我的函数只是在实现一组字符大小的排序。没有return那样的返回动作,我的函数应该定义成什么类型?
也就是的我的函数只是进行有关一些指针操作,没有返回值,那么这个时候我的函数应该定义成什么类型。
谢谢!