我知道可以像这样交换两个变量的值
#include <stdio.h>
void swap(int *x, int *y);
int main(){
int x=5,y=10;
swap(&x, &y);
printf("x: %d, y: %d\n", x, y);
return 0;
}
void swap(int *x, int *y){
int temp;
temp=*x;
*x=*y;
*y=temp;
}
但是可以交换这两个变量的地址吗?我的意思不是仅仅创建一个指向它们的指针然后交换指针所持有的值,我的意思是实际交换两者,以便在交换函数之后 x 的地址现在是交换函数之前 y 的地址和反之亦然。
如果这是一个愚蠢的问题,我深表歉意,但我很想知道这样的事情是否可能。如果这种行为是不可能的,为什么?
最佳答案
不,那不可能。您无法选择变量的地址,也无法修改它们。
关于c - 是否可以交换两个变量的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27458825/