#include <stdio.h>
int swap(int* a, int* b) {
int *p;
p = a;
a = b;
b = p;
return *a;
}
int main() {
int x = 3, y = 4, z = 5;
swap(swap(&x,&y),&z);
printf (“%d%d%d”,x,y,z);
}
这个代码输出什么?为什么会是这样的结果
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- threenewbee 2023-11-28 16:46关注
这代码没法编译,假定修正了错误
#include <stdio.h> int swap(int* a, int* b) { int *p; p = a; a = b; b = p; return *a; } int main() { int x = 3, y = 4, z = 5; int t = swap(&x,&y); swap(&t,&z); printf ("%d%d%d",x,y,z); }
那么输出 345
也就是没有交换。
因为你交换的是指针,指针的交换需要双指针本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
- ¥20 关于web前端如何播放二次加密m3u8视频的问题
- ¥20 spring boot集成mqtt的使用问题
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络
- ¥66 关于川崎机器人调速问题
- ¥15 winFrom界面无法打开
- ¥30 crossover21 ARM64版本安装软件问题
- ¥15 mymetaobjecthandler没有进入
- ¥15 mmo能不能做客户端怪物