void f(int y,int *x)
{y=y+*x; *x=*x+y;}
main()
{ int x=2,y=4;
f(y,&x);
printf("%d,%d\n",x,y);
}
结果应该是什么呢??为什么?
以后遇到这样的题该怎么解决呢?
參考答案:y的值是按值传递的,形参的值不能改变实参y的值,所以输出y还是4.
而形参x是指针,y=y+*x, y=6,然后*x=*x+y,*x=8.形参值的改变可以改变实参的值.所以x的值是8
笑话军事旅游美容女性百态母婴家电游戏互联网财经美女干货家饰健康探索资源娱乐学院 数码美食景区养生手机购车首饰美妆装修情感篇厨房科普动物植物编程百科知道汽车珠宝 健康评测品位娱乐居家情感星座服饰美体奢侈品美容达人亲子图库折扣生活美食花嫁风景 | 首页 |
void f(int y,int *x)
{y=y+*x; *x=*x+y;}
main()
{ int x=2,y=4;
f(y,&x);
printf("%d,%d\n",x,y);
}
结果应该是什么呢??为什么?
以后遇到这样的题该怎么解决呢?
參考答案:y的值是按值传递的,形参的值不能改变实参y的值,所以输出y还是4.
而形参x是指针,y=y+*x, y=6,然后*x=*x+y,*x=8.形参值的改变可以改变实参的值.所以x的值是8