杨宝玲写真照片:C语言的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 11:44:09
fun1(int *p,int b)
{int t;
t=*p;8p=b;b=t;}
fun2(int b,int *p)
{int t;
t=b;b=*p;*p=t;}
main()
{int a=3,b=5,c=8;
fun1(&a,b);
fun2(b,&c);
printf("%d,%d,%d\n",a,b,c);}

正确答案是5,5,5

先更正一下:
fun1(int *p,int b)
{int t;
t=*p;*p=b;b=t;} //原来的8应该为*

main()
{
int a=3,b=5,c=8; //初值
fun1(&a,b); //调用时,a被传入函数,被修改(改为b的值5),而b则被复制后传入函数,函数中修改的是b的复制品,b并没修改,仍为5
fun2(b,&c); //同上,b仍是被复制后传入函数,没被修改,c被传入,改成了b
//之后a、b、c都成了5
...
}