lzth.net
当前位置:首页 >> voiD F(int y,int*x) {y=y+*x; *x=*x+y;} voiD mAin( >>

voiD F(int y,int*x) {y=y+*x; *x=*x+y;} voiD mAin(

void f(int y, int *x) { y = y + *x; // 形参y,x和实参y,x存储地址不同,改变形参的值对实参没有影响。 // y=y+x=6 *x = *x + y; // *x的值就是主函数里实参x的值 // *x=2+4=6 } void main() { int x = 2, y = 4; f(y, &x); // f()函数中只改变...

在c语言中,被调函数不能直接修改主调函数中变量的值,而要让函数可以修改主调函数的变量,则被调函数需要将参数声明为指针类型,调用者需向被调用的函数传递变量的地址,所以,f()中x是声明为指针类型,调用的时候也是给x传递地址,所x能修改主...

因为x传的是地址,在函数f中它的值会被改变,而y传的只是普通变量,所以值不会发生变化

X是地址传递,子函数会修改X的内容;而Y是按值传递,子函数不会修改Y的值。结果自然是X=8.Y=4.要是还不懂,翻书去。

x=5; y=2; z=0; 【x=5,y=2,z=0】 p(&x,y);即p(&x,2);函数p中x指向main函数中的变量x,参数变量y=2 --*x;【*x=4,main函数中x的值被减1改成了4】 y++;【p函数的参数y加1=3】 z=*x+y;【p函数中没有定义z,所以使用全局变量z,x和y仍然是p函数参数...

考查的是参数传递,及指针应用。 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

main是主函数,所以程序先从main函数执行。 main函数中,调用fun(x,y);x,y是形参,值分别为2,3. 转入执行fun()函数,x,y被重新赋值了,x=2+3=5,y=5-3=2,x=5-2=3 接着输出xy的值,所以为3,2。因为x,y不是地址传递,所以在main函数中的x...

test(&a,&b);调用test函数voidtest(int*x,int*y)此时*x=a=3;*y=b=4{*x=*y;*y=*x-2;}*x=*y=4;*y=*x-2=2传回主函数则a=4,b=2

//1、定义了两个变量 int a=2,b=2; //这里a为2,b为2 //2、调用test函数,a为引用传递,b为至传递 test(&a,b); //执行后main中a为5,b为2 //3、打印 //打印结果为"a=5,b=2" 解释一下 步骤2中a为引用传递,他给test函数传了一个内存的地址,a这个...

当然不能交换了 void swap1( int *x, int *y){ int *t; t=x; x=y;y=t;}void swap2( int *x, int *y){ int t; t=*x; *x=*y;*y=t;}int main(){ int a,b; a = 3; b = 5; swap( &a,&b);}指针就是地址,相当于钥匙。若有指针变量p, *p就是用钥匙p打...

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com