c语言定义函数时形参互换 c语言变量的值

C语言,定义函数,将a,b的值互换 求改!

这是谭浩强那本书上一个很典型的程序,看看书就能改了。

10年积累的成都网站建设、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有睢宁县免费网站建设让你可以放心的选择与我们合作。

给你个答案参考一下:

#includestdio.h

void exchange(int *x,int *y);//此处将函数返回类型修改为void型,因为函数本来就没返回值。参数全部改为指针型。

int main(void)

{

int a,b;

printf("请输入a,b\n");

scanf("%d%d",a,b);

exchange(a,b);//此处参数变为取地址a,b

printf("a=%d,b=%d",a,b);

return 0;

}

void exchange(int *x,int *y)//根据函数声明一并修改

{

int *i;//所要操作的数据都是指针,所以这里缓存也要变为指针。

i=x;

x=y;

y=i;

}//本来就没返回值为啥原题要声明成返回值为int型的函数呢?

C语言简单问题:定义函数交换两个实参的值

形参是一个变量,是在引用的函数中的变量

实参也是一个变量.是在主函数中的变量.

两个变量的使用范围不同.

形参只在子函数中使用,实参可以在主函数中使用.

上面,实参写成100,是说,在形参用100代进去.

而形参只能是一个变量,用来吸收实参传递进来的值,以输出结果.

在C语言中,定义一个函数的形参和实参之间具体是如何进行参数传递的?

主要有两种:(1)值传递:在函数调用时,将实参的值复制一份传递到调用函数中,这样,如果在调用函数中修改了参数的值,也不会影响到实参的值。(2)引用传递:与(1)相反,即会影响实参的值。如何区分它们呢?实际上,通常在定义函数时,如果参数为数组、指针或引用类型时,函数采用引用传递,否则采用值传递。

c语言fun函数的功能是交换形参的值,不能交换实参的值,都是按值传递为什么不能改变实参的值

void fun(int *a, int *b)

{

int *c;

c=a;a=b;b=c;

}

因为函数中,形参a,b中保存的都是实参的地址值,c=a;a=b;b=c;这行代码,只是把形参a,b的地址值进行了互换,对调用函数的实参所保存的结果是没有任何影响的。如果换成如下代码:

void fun(int *a, int *b)

{

int c;

c=*a;*a=*b;*b=c;

}

互换的是指针所指空间的值,即互换了调用函数的实参所保存的数值


网页名称:c语言定义函数时形参互换 c语言变量的值
文章转载:http://scyanting.com/article/hjddoo.html