
这道题的答案是什么,为什么呢?不是很懂
voidfun(int*a,intb){*a=2;b=5;}main(){inta=3,b=7;fun(&a,b);printf("%d%d\n",a,b);}...
void fun(int *a,int b)
{ *a=2; b=5; }
main()
{ int a=3, b=7;
fun(&a,b);
printf("%d%d\n", a,b); } 展开
{ *a=2; b=5; }
main()
{ int a=3, b=7;
fun(&a,b);
printf("%d%d\n", a,b); } 展开
展开全部
答案应该是 2和 7吧
前面是传址,后面是传值
传址引用在函数内可以改变原有的值,但是传值引用在调用函数内不会改变其值
你可以想象一下,你有一张纸条(代码A)上面写上了 3,然后传递给另一个人,他涂掉3 写上2,传回来,你看到A上的值是2
但是你有一张纸条A写上7,然后用另一张纸条B写上7,传给另一个人,另一个人把B上的数字改成了5,但是你手上的A纸条还是7
前面是传址,后面是传值
传址引用在函数内可以改变原有的值,但是传值引用在调用函数内不会改变其值
你可以想象一下,你有一张纸条(代码A)上面写上了 3,然后传递给另一个人,他涂掉3 写上2,传回来,你看到A上的值是2
但是你有一张纸条A写上7,然后用另一张纸条B写上7,传给另一个人,另一个人把B上的数字改成了5,但是你手上的A纸条还是7
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询