网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月29日
漏签
0
天
c语言吧
关注:
799,022
贴子:
4,354,636
看贴
图片
吧主推荐
视频
游戏
12
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
求师兄指点 为什么这个swap函数没作用
只看楼主
收藏
回复
风流浪莎
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include "stdio.h"
void swap(int *pa,int *pb)
{
int *temp=NULL;
temp=pa;
pa=pb;
pb=pa;
}
void main()
{
int a,b,*pa=&a,*pb=&b;
scanf("%d%d",pa,pb);
printf("%d,%d\n",*pa,*pb);
swap(pa,pb);
printf("%d,%d\n",*pa,*pb);
}
为什么交换不了a,b啊
真要哭了
xuelove1234
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
挽
风流浪莎
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
风流浪莎
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
老姐给讲解讲解
不懂啊
xuelove1234
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
void swap(int *pa,int *pb)
{
int temp;
temp=*pa;
*pa=*pb;
*pb=temp;
}
小冰
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主的写法只是变了pa pb的指向, a b 其实并无变
风流浪莎
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个我知道,但是为什么这样
int *temp=NULL;
temp=pa;
pa=pb;
pb=pa;
不行啊
菜鸟,想不通,别生气
xuelove1234
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你这样只是交换了指针变量pa,pb的值,也就是让pa指向b,pb指向a,和a,b一点关系也没有。
bc12358
彩虹面包
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
C函数的参数都是传值调用,这个例子里面的指针pa也是这样,即使你改变了这个指针的值,离开函数以后也会把参数丢弃。
子函数里的pa只是主函数里的pa的复制品,但是子函数里面的pa的值仍然是a的地址,*pa仍然能指向a。
风流浪莎
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
明白了
Mike生化克星
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主你的想象力…………匮乏了……
千山涧
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主最大的问题在于temp=pa;pa=pb;pb=pa;这代码根本什么都没有交换没有用到temp
ixpaste
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
根本没交换值。。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示