93关注603浏览
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
贺纸张
16人对此回答表示赞同
兄弟,你这想法是好的,如果在主函数里完全可以实现你的设想,但是,如果封装成函数就不得不考虑形式参数和实际参数的关系了。
我用OD调试了一下这个程序,发现的问题是:在swap函数中,没有对指针p,q做任何操作,也就是说,p,q的值没有发生任何改变。为什么会这样呢?
展开160回复分享发布于 6年前评论(0)
收起评论
-
杏仁糖
16人对此回答表示赞同
一楼回答的很正确的,你的函数里只是改变了指针 ,而且是非传址,也可以修改函数参数为int** a,int** b,调用时使用swap(&p,&q)
展开160回复分享发布于 6年前评论(0)
收起评论
-
回忆的沙漏
16人对此回答表示赞同
问比尔结婚以后他的身影
展开160回复分享发布于 6年前评论(0)
收起评论
-
Kenneth
12人对此回答表示赞同
void swap(int *a,int *b){
int t;
t = *a;
*a = *b;
*b = t;
}
展开120回复分享发布于 6年前评论(0)
收起评论
-
Owen
9人对此回答表示赞同
你只是交换a,b所指向的地址,并没有换地址所指的内容
展开90回复分享发布于 6年前评论(0)
收起评论
-
Mira
9人对此回答表示赞同
程序应该这么写的哦!
void swap(int *a,int *b){
int *t;
*t=*a;
*a=*b;
*b=*t;
}
void main()
{
int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d %d ",*p,*q);
}
注意指针存的
展开90回复分享发布于 6年前评论(0)
收起评论
-
Collin
8人对此回答表示赞同
一楼回答的很正确的,你的函数里只是改变了指针,而且是非传址,也可以修改函数参数为int** a,int** b,调用时使用swap(&p,&q)
展开80回复分享发布于 6年前评论(0)
收起评论
-
沧海一声笑
8人对此回答表示赞同
int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d %d ",*p,*q);
}
展开80回复分享发布于 6年前评论(0)
收起评论