返回:贺老师课程教学链接
请分析下面程序的输出结果,对照在计算机上的运行结果,解释得到输出的过程。
建议:通过在纸上画出内存变化的过程,洞悉计算机执行的过程。
(1)
#include
void fun(int x,int y,int *z)
{
*z=x*x+y*y;
}
int main()
{
int a=31;
fun(5,2, &a);
printf("%d\n",a);
return 0;
}
(2)
#include
void fun(int *a, int *b, int *c)
{
int *temp;
temp=a;
a=b;
b=temp;
*temp=*b;
*b=*c;
*c=*temp;
}
int main()
{
int a,b,c,*p1,*p2,*p3;
a=5;
b=7;
c=3;
p1=&a;
p2=&b;
p3=&c;
fun(p1,p2,p3);
printf("%d,%d,%d\n",a,b,c);
return 0;
}
(3)
#include
void exchange(int *,int *,int *);
void myswap(int *,int *);
int main( )
{
int a,b,c;
scanf("%d %d %d", &a, &b, &c);
exchange(&a,&b,&c); //另一种调用方法
printf("%d %d %d\n", a, b, c);
return 0;
}
void exchange(int *q1,int *q2,int *q3)
{
if(*q1
if(*q1
if(*q2
}
void myswap(int *pt1, int *pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}