C语言问题,希望能有解释 谢谢

[复制链接]
查看11 | 回复2 | 2009-7-16 21:58:26 | 显示全部楼层 |阅读模式
1)
#include
voidswap(int *a,int *b)

{int*t;

t=a; a=b;b=t;

}
void
main()

{intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

printf("%d%d\n",*p,*q);

}
执行后输出的结果是
2)
void f( int y,int *x)

{y=y+*x;*x=*x+y;}
void main( )

{int x=2,y=4;

f(y,&x);

printf(“%d %d\n”,x,y);

}

执行后输出的结果是
没错 不大懂诶能不能解释一下呢

回复

使用道具 举报

千问 | 2009-7-16 21:58:26 | 显示全部楼层
1:35LZ原本的意思是想值交换吧~但是错了~给你解释下。#include voidswap(int *a,int *b)//传递过来指针
{int*t;
t=a; a=b;b=t;//地址交换(值没换)
}这里只是传来的指针交换了,原本的指针根本就没变。这么改:voidswap(int *a,int *b)
{intt;
t=*a;*a=*b;*b=t;//记住!要改的是值
}要改指针也不是没办法。但是要设置全局变量。LZ想知道的话,我们可以交流下。2:8,4f(int y,int *x)//这里传...
回复

使用道具 举报

千问 | 2009-7-16 21:58:26 | 显示全部楼层
第一题是 3 5第二题是 8 4楼主才学指真吧?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行