C语言 编写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
#include<stdio.h>#include<string.h>voiddaoxu(charx[],intn){chars;intk;for(k=0;k<n/2;k...
#include<stdio.h>
#include<string.h>
void daoxu(char x[],int n)
{
char s;
int k;
for(k=0;k<n/2;k++)
{
s=x[k];x[k]=x[n-k-1];x[n-k-1]=s;
}
}
#define MA 100
main()
{
char a[MA];
int m;
scanf("%s",a);
printf("%s\n",a);
m=strlen(a);
daoxu(a,m);
printf("%s\n",a);
}
前面的函数明明是void,没有返回值,但为什么会起作用 展开
#include<string.h>
void daoxu(char x[],int n)
{
char s;
int k;
for(k=0;k<n/2;k++)
{
s=x[k];x[k]=x[n-k-1];x[n-k-1]=s;
}
}
#define MA 100
main()
{
char a[MA];
int m;
scanf("%s",a);
printf("%s\n",a);
m=strlen(a);
daoxu(a,m);
printf("%s\n",a);
}
前面的函数明明是void,没有返回值,但为什么会起作用 展开
4个回答
展开全部
这个和返回值没有关系的呀,返回值和参数是两个概念的。
参数是调用者传递给被调用者的一些信息,可以是一个或者多个,也可以没有。
而返回值是被调用者给调用者的信息,可以是一个,或者没有,不能是多个。
void daoxu(char x[],int n),这样子的写法,main函数传递给daoxu函数的是数组a和a的长度m,daoxu函数里面对数组a的更改一样会反馈到main函数里面,和daoxu函数有没有返回值完全没关系的
参数是调用者传递给被调用者的一些信息,可以是一个或者多个,也可以没有。
而返回值是被调用者给调用者的信息,可以是一个,或者没有,不能是多个。
void daoxu(char x[],int n),这样子的写法,main函数传递给daoxu函数的是数组a和a的长度m,daoxu函数里面对数组a的更改一样会反馈到main函数里面,和daoxu函数有没有返回值完全没关系的
追答
数字也可以使用字符类型来表示,使用的是其ASCII码。
fanxu函数的返回值是char类型,但是return的是一个数组str1。
所以返回值只是str1的地址的低8位。
展开全部
因为在传递参数的时候有两种方法,传值调用和传址调用,一般简单数据类型如int,float,double
等都是直接传值调用的,所以传入参数,原来的变量不会改变,但是数组类型的变量,他的值指的是该数组的首地址,首地址是不能够随意修改的,因此它将会视为传址调用,即在该数组的地址上直接改变里面的值,因此第一个函数就起作用了
等都是直接传值调用的,所以传入参数,原来的变量不会改变,但是数组类型的变量,他的值指的是该数组的首地址,首地址是不能够随意修改的,因此它将会视为传址调用,即在该数组的地址上直接改变里面的值,因此第一个函数就起作用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void main()
{
char a[MA];
int m;
scanf("%s",a);
printf("%s\n",a);
m=strlen(a);
daoxu(a,m);
printf("%s\n",a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-09 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数:17564
获赞数:65157
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……
向TA提问 私信TA
关注
展开全部
数组作参数时,进行的是传址操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询