但是里面他为什么用指针类型啊,如果把全部的“*”去掉可以吗? 即*x换成x,*y换成y。
追答必须不行啊。C语言的函数参数只是值传递,你不用指针的话,值的改变反映不到实际变量上,换句话说,你在函数里边看变量的值是交换过来了,出了函数以后就又变回去了。关于这个问题请参考教科书,教科书对此有详细的解释。
所以你注意看,我特意指出是“伪代码”。
...Func(int *x,int *y) {*x^=*y; *y^=*x; *x^=*y; } 这个函数的功能是...
x' = (x xor y) xor (y xor (x xor y)) = x xor y xor x = 0 xor y = y 经过运算后y'(y的新值)是x,x'是y,完成了交换
void f(int *x,int *y) { int *t; t=x; x=y; y=t; } 请问这个函数实现了...
} void f(int *x,int *y){ int *t;cout<<x<<endl; \/\/添加 t=x; x=y; y=t;cout<<x<<endl; \/\/添加 } 添加这些语句之后,你就能看明白你这个程序并没有交换a,b的地址 void f(int *x,int *y){ int t; \/\/修改*t 为 t t=*x; *x=*y; *y=t; \/\/修改 } 这样就...
fun(int x,int y,int z){z=x*x+y*y;}main(){int a=31;fun(5,2,a);p...
也可以通过指针所指来修改地址值 也就是 void fun (int ,int int * )
C语言中 void f(int *x,int *y)
int *x:x是一个指针变量,指向一个int型数据,x本身的值是该int型数据的地址。int x:x本身就是一个int型数据 还有 int *f(int *x,int *y) 表示返回的是int类型的指针。
...int *x, int *y) { printf("%d %d",*x,*y);*x=3;*y=4;} main...
fun(&y, &x);函数内容是什么啊?原题是不是:下列程序段的输出结果是:( ).void fun( int *x, int *y){ printf("%d %d",*x,*y);*x=3;*y=4;} main( ){ int x=1, y=2;fun(&y, &x);printf("%d %d", x, y);} 应该选择C fun(&y, &x);把y的地址传递给x,...
void fun(int *x,int *y) {printf("%d%d", *x=3,*y=4;}
考查的是参数传递,及指针应用。fun(&y,&x); 参数为地址传送,void fun(int *x,int *y)接收的是(x=&y,y=&x) 输出是y x也就是2 1 将地址赋的值更改为*x=3,*y=4;相当于主函数的y=3,x=4.返回主函数输出的是4 3 故最后输出结假果:2143 答案是A ...
...x=y; y=tmp; return; } 问fun函数的功能是什么???
1.首先,你的这个函数中的两个冒号是不对的,第一个冒号应该改成逗号,第二个冒号应该改成分号,即:void fun (int x, int y) { int tmp; tmp=x; x=y; y=tmp; return; } 2.其次,这是一个用户自定义的、交换两变量值的函数,即用tmp作为一个媒介,将形式参数x和y的值对换。3.再次...
void change(int *x,int *y) { int z; z=*x; *x=*y; *y=z; printf...
就是交换*x与*y变量的值,然后再打印交换后的二个值。在程序中要交换二个int变量a和b的值,就用change(&a,&b); 实现。在change函数中实现的交换结果,对于主调函数中的变量a和b,也能得到保留。
void swap(int *x, int *y) { int *t; *t = *x; *x = *y; *y = *t...
不能,指针t是野指针,没有指向有效内存,*t=*x此行试图写t指向的空间将会导致程序崩溃。
...void f(int x,int y) {int t; t=x;x=y;y=t; } main() {int a=...
因为这里你传到f()里的是a,b的值,在f()里x,y是局部变量,函数运行结束就释放了,你要改变值则应该传地址