c语言函数x和y调换 c语言中怎样将xy的值交换

C语言:定义宏swap(x,y)用于交换两个参数x和y的值,并编写程序测试_百度...

这个无法交换数据。C语言函数参数的基本规则是值传递,所以传递时只能实现实参向形参的单向的、值的传递。这就是为什么需要使用指针才能实现值交换的原因。

松江网站建设公司创新互联,松江网站设计制作,有大型网站制作公司丰富经验。已为松江上1000家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的松江做网站的公司定做!

swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换。swap1(x,y);printf(swap1: x:%d,y:%d\n,x,y);//形参传值,不能交换,实际传过去是拷贝的一份,没改变主函数中x,y。

这是带参数的宏定义,相当于一个函数,宏定义实际上就是把后面的那个(t= temp;temp=x;x=y;y=temp;)直接加到语句中去的,只是一个替换,在编译之前就进行的。。

C语言要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果...

答案:A 分析:按照C++语言规则,通过参数带回运算值,只能是传地址,不能是传值 ,B和D的参数是传值,故B和D不能选。C中传回值都是指针变量y所指向地址的值,C也不能选。

要求一个颠倒x,y的函数,就是说把x,y输入到函数中,函数能把他们颠倒。第二个函数的参数中没有x和y的指针,所以根本不可能获得x,y的地址,自然也就不可能颠倒x,y,而且大括号里的x,y也没有变量声明,只会报错而已。

int t,int z)就只是按值传递,函数调用结束后下x,y的值没有真正的互换,互换的只是只是函数形参的值,所以这里用指针来实现,把*x和*y所指向的地址的值互换,这样在函数调用结束后x,y才真正改变了。

A错:y值没变;B错:传的不是指针,x和y都不变;C错:和A一样,y不变;D正确:传的是指针,通过x和y的地址交换它们的值。

B. funb(int x,int y){int t;t=x;x=y;y=t;/// //x=y是y的值变为x的值,后面y=t是x的值变为y的值,这里只让y的值变成x而没有把y的值变为x的值,没有完全交换x和y中的值。

c语言的题。要求函数的功能是交换x与y的值,……请讲下原因,谢谢_百度...

1、A错:y值没变;B错:传的不是指针,x和y都不变;C错:和A一样,y不变;D正确:传的是指针,通过x和y的地址交换它们的值。

2、答案:A 分析:按照C++语言规则,通过参数带回运算值,只能是传地址,不能是传值 ,B和D的参数是传值,故B和D不能选。C中传回值都是指针变量y所指向地址的值,C也不能选。

3、函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。


网页标题:c语言函数x和y调换 c语言中怎样将xy的值交换
网页链接:http://myzitong.com/article/dchppcp.html