c语言题目,求详细解答步骤,谢谢。
#include”stdio.h"voidfun(intx,int*y){x+=*y;*y+=X;}intmain()intx=5,y=10;fun(x,&y);fun(...
#include ” stdio.h"
void fun(int x,int *y)
{
x+=*y ;
*y+=X;
}
int main ()
int x=5, y=10;
fun(x,&y);
fun(y, &x)
printf(" x=%d, y=%d"x,y)
return 0;
} 展开
void fun(int x,int *y)
{
x+=*y ;
*y+=X;
}
int main ()
int x=5, y=10;
fun(x,&y);
fun(y, &x)
printf(" x=%d, y=%d"x,y)
return 0;
} 展开
1个回答
展开全部
x=5,y=10, 调用fun时,开设临时变量x和临时变量y,与主程序中并非同一变量,因此可以写成:void fun(int xx,int *yy) { xx+=*yy; *yy=xx; }
fun: xx=5,yy指向y,*yy即取主程序中y的值,给*yy赋值即给主程序中y赋值, xx+=*yy;[xx=5+10=15], *yy+=xx;[y=y+xx=10+15=25], 返回时xx和yy被舍弃, fun(x,&y);[x=5,y=25]
fun: xx=25,yy指向x,xx+=*yy;[xx=25+5=30], *yy+=xx;[x=x+xx=5+30=35], 返回时xx和yy被舍弃, fun(x,&y);[x=35,y=25]
printf输出:x=35,y=25
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询