指针交换问题,给一个整型int temp赋*a,再执行*b=temp这样可以吗?

如题,如果可以的话,那么temp被赋值之后应该为一个常数,而常数又对指针变量赋值?

int temp=*a
*b=temp
这样 b变量指向的位置的值就变成了变量指向的位置的值

强转一下
int temp;
int *a;
a = (int *)temp;
或者temp = (int)a;

因为int一般为四个字节(也有2个字节的),指针一定为四个字节
有的编译器会警告,所以严谨点可以:a = (unsigned long int *)temp;

题主的意思是 a b 的定义是:
const int *a = ...;
const int *b = ...;
吧?
a b 都是指向常数的指针(const int *)的话,就不能用 int 或者 int * 来交换了,只能用 const int * 来交换。

const int *tmp = a;
a = b;
b = tmp;
交换 a b 指向的方向。

a是一个地址,*a是解指针,指针解完后是一个值,so你的temp是放在a地址中的值