C语言的一道题目10.有以下程序voidf(intx,inty)
10.有以下 void f(int x,int y) { int t; if(x
结果是4,3,5,我之前答过一次,转为评论了.哈哈,因为我没有说明白. 为什么结果是原数4,3,5呢?因为a,b,c的值根本没发生变化,请注意,f函数是按值传递的参数而不是传递的指针.该题的考点也就在这里. f函数只对x,y进行了交换,不会影响a,b,c.因为x,y只是f函数的局部变量. 如果要使f函数能操作函数以外的变量的话,就要传递指针,下面我给出交换abc的正确程序: void f(int* x,int* y) { int t; if(*x<*y){ t=*x; *x=*y; *y=t; } } main() { int a=4,b=3,c=5; f(&a,&b); f(&a,&c); f(&b,&c); printf("%d,%d,%d\n",a,b,c); }