能否通过二级指针间接交换两个数的值?

代码是这样的,
#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的值的交换?如果不能,请给一下原因,谢谢!

当然能实现,但是要主要的是 **的初始化,我一般理解他是指针的指针(地址的地址),是要从内部的*开始的 你这样那么**ppt应该是编译不过的。
还有 为什么能实现交换a和b的值,这里其实就是对地址,或者地址的地址,或者是它本身的值进行交换的细节处理
你交换的是谁的地址,换的就是谁,交换的是值,换的就是值。

懒得写代码,逻辑就是这样的~