c措辞函数调用三种方法 传值调用,援用调用和传地址调.doc

您所在的位置:网站首页 函数调用方式有传值调用和引用调用两种 c措辞函数调用三种方法 传值调用,援用调用和传地址调.doc

c措辞函数调用三种方法 传值调用,援用调用和传地址调.doc

2022-05-06 18:03| 来源: 网络整理| 查看: 265

c措辞函数调用三种方法 传值调用,援用调用和传地址调.doc我想,你只要看了C语言上关于传值函数调用的测试题,一切都会了然于胸:1. 考题一:程序代码如下:void Exchg1(int x, int y) {int tmp;tmp=x;x=y;y=tmp;printf(“x=%d,y=%d\n”,x,y)}void main(){int a=4,b=6;Exchg1 (a,b) ;printf(“a=%d,b=%d\n”,a,b)}输出的结果:x=____, y=____a=____, b=____问下划线的部分应是什么,请完成。2. 考题二:代码如下。Exchg2(int *px, int *py){int tmp=*px;*px=*py;   *py=tmp;print(“*px=%d,*py=%d\n”,*px,*py);}main(){int a=4;int b=6;      Exchg2(&a,&b);      Print(“a=%d,b=%d\n”, a, b);}输出的结果为:*px=____, *py=____a=____, b=____问下划线的部分应是什么,请完成。3. 考题三:Exchg2(int &x, int &y){   int tmp=x;   x=y;   y=tmp;print(“x=%d,y=%d\n”,x,y);}main(){int a=4;int b=6;      Exchg2(a,b);      Print(“a=%d,b=%d\n”, a, b);}二. 函数参数传递方式之一:值传递1. 值传递的一个错误认识    先看题一中Exchg1函数的定义:void Exchg1(int x, int y)   //定义中的x,y变量被称为Exchg1函数的形式参数{int tmp;tmp=x;x=y;y=tmp;printf(“x=%d,y=%d\n”,x,y)}问:你认为这个函数是在做什么呀?答:好像是对参数x,y的值对调吧?    请往下看,我想利用这个函数来完成对a,b两个变量值的对调,程序如下:void main(){int a=4,b=6;Exchg1 (a,b)     //a,b变量为Exchg1函数的实际参数。/ printf(“a=%d,b=%d\n”,a,b)}    我问:Exchg1 ()里头的 printf(“x=%d,y=%d\n”,x,y)语句会输出什么啊?    我再问:Exchg1 ()后的 printf(“a=%d,b=%d\n”,a,b)语句输出的是什么?    程序输出的结果是:x=6 , y=4 a=4 , b=6 //为什么不是a=6,b=4呢?    奇怪,明明我把a,b分别代入了x,y中,并在函数里完成了两个变量值的交换,为什么a,b变量值还是没有交换(仍然是a==4,b==6,而不是a==6,b==4)?如果你也会有这个疑问,那是因为你跟本就

内容来自淘豆网www.taodocs.com转载请标明出处.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3