代码是这样的,
#include <stdio.h>
int main(void)
{
int a=10,b=20;
int *pa=&a,*pb=&b,*pt;
int **ppa=&pa,**ppb=&pb,**ppt;
**ppt=**ppb;
**ppb=**ppa;
**ppa=**ppt;
printf("%d %d\n",a,b);
printf("%d %d\n",*pa,*pb);
printf("%d %d\n",**ppa,**ppb);
}
在书上看到,交换a,b的值需要先交换ppa,ppb的值,再交换pa,pb的值,再交换a,b的值,才能实现完全交换,那么能不能直接利用这个代码实现a,b的值的交换?如果不能,请给一下原因,谢谢!
能否通过二级指针间接交换两个数的值?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- yun6853992 2022-03-31 17:47关注
当然能实现,但是要主要的是 **的初始化,我一般理解他是指针的指针(地址的地址),是要从内部的*开始的 你这样那么**ppt应该是编译不过的。
还有 为什么能实现交换a和b的值,这里其实就是对地址,或者地址的地址,或者是它本身的值进行交换的细节处理
你交换的是谁的地址,换的就是谁,交换的是值,换的就是值。懒得写代码,逻辑就是这样的~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?