下边c语言程序: void fun(int *a,int *b) {int t; t=*a;*a=*b;*b=t; } main() {int x=1,y=3,

下边c语言程序:
void fun(int *a,int *b)
{int t;
t=*a;*a=*b;*b=t;
}
main()
{int x=1,y=3,
fun(&x,&y)
printf("%d,%d",x,y);
}
中fun的作用是什么

第一行的fun是定义函数时的起名,
第七行的fun是程序运行时调用函数。
温馨提示:内容为网友见解,仅供参考
无其他回答

...fun(int *a,int *b) {int t; t=*a;*a=*b;*b=t; } main() {int_百度...
int*b){intt;t=*a;\/\/指针*a=*b;*b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;ivoidfun(int&a,int&b)\/\/引用{intt;t=a;a=b;b=t;}main(){intc[10]={1,2,

...按由小到大顺序输出。编写交换函数fun,用交换指针的方式
void fun(int *a,int *b){int t;t=*a;*a=*b;*b=t;} int main(){ inta,b,c;scanf("%d%d%d",&a,&b,&c);if(a>b)fun(&a,&b);if(a>c)fun(&a,&c);if(b>c)fun(&b,&c);printf("%d %d %d\\n",a,b,c);return 0;} ...

#include <stdio.h> void fun(int*a, int*
深度解析:写这个函数毫无意义,应该不是写程序人的本意,其本意似要交换M与N的值。那就要这样写:int *t;t=*a;a=*b;b=*t;或者稍简单一点:int t;t=*a;a=*b;b=t;不知分析的对不对。不明白之处,请留言。

void fun(int *a,int *b) { int *c; c=a;a=b;b=c; } main() { int x...
void fun_2(int *a,int *b){ int c;c=*a;*a=*b;*b=c;} 调用 fun_1(&p,&q); printf("%d,%d\\n",*p,*q);fun_2(&x,&y); printf("%d,%d\\n",x,y);

...void fun(int*a,int*b) {int*c; c=a;a=b;b=c;} main() {int x=...
再回到fun函数中,可以看出,a和b的值(x和y的地址)是交换了,也即是说a原本指向x,现在指向了y,对应的b改为指向x。但这只能说a和b间有变化。会影响到x和y吗?也不会。所以fun函数其实对x,y,p,q没有产生任何的影响,当然结果就应该是3,5,3,5了。希望你看过之后可以理解清楚。

#include "stdio.h"
你可以将程序改为:include "stdio.h"void fun(int *a,int *b){ int t;printf("%d %d",*a,*b);t=*a;*a=*b;*b=t;printf("%d %d",*a,*b);} void main(){ int x=30,y=20;\/\/,fun();printf("%d %d",x,y);fun(&x,&y);printf("%d %d",x,y);} 这样就没有错误...

void fun(int &a,int &b) {int t; t=a;a=b;b=t;}
}\/\/这个写错了,t为int a为int *类型不匹配,编译不通过 void fun(int *a,int *b) {int *t; t=a;a=b;b=t;}\/\/不能交换 void fun(int *a,int *b) {int t; t=*a;*a=*b;*b=t;}\/\/可以交换 void fun(int a,int b) {int t; t=a;a=b;b=t;}\/\/不能交换 ...

...void fun(int *a,int *b) {int *c; c=a;a=b;b=c; }
调用fun(p,q)时就是让a指向p指的地方,b指向q指的地方,函数内部是让c指向a指的地方,让a指向b指的地方,再让b指向c指的地方,你发现这里面没有改变p和q原来指向的地方,即p还是指向x,q还是指向y。fun(&x,&y)是让a指向x,b指向y,你会发现这根本没涉及到p和q的指向,更谈不上改变...

...void fun(int *a,int *b) {int *c; c=a;a=b;b=c; } main() {int...
include<stdio.h> void fun(int *a,int *b){ int *c;c=a;a=b;b=c;} main(){ int x=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,",*p,*q);fun(&x,&y);printf("%d,%d\\n",*p,*q);return 0;}

...void fun(int a, int b) { int t; t=a; a=b; b=t;
void fun(int a, int b)这里的a,b是形参。fun(c[i], c[i+l]);这里的c[i], c[i+l]是实参。值得传递是从实参向形参单向传递的。所以,形参的改变,不能影响实参,即,a,b的值交换了,但是c[i], c[i+l]的值不变。要想改变实参c[i], c[i+l]的值,可以用指针,或者用引用(...

相似回答