#include <stdio.h>int main(){ int *p1,*p2,*p,a,b; printf("integer numbers:"); scanf("%d,%d",&a,&b); p1=&a; p2=&b; if(a<b) { /* p=p1; p1=p2; p2=p;*/ p1=&b;//为什么这样就出问题? p2=&a; } printf("a=%d,b=%d\n",a,b); printf("%d,%d\n",*p1,*p2); return 0;}
2 回答
已采纳
MadMarical
TA贡献79条经验 获得超122个赞
你好。我想你的问题是出于,为何输出的a,b实际上并没有交换。理由是,你只改变了指针的指向,并未改变a,b内存地址中存储的值。而如果使用注释段内的代码,a,b内存地址中存储的值是进行了交换的。
- 2 回答
- 0 关注
- 1292 浏览
添加回答
举报
0/150
提交
取消