我知道这两个函数之间的区别:Swap(int *x, int *y)vs Swap(int **x, int **y)。
但是,我不确定这种代码是如何工作的。如何将指针指向的地址与常规swap()类型交换?
例如,我相信a创建了一个本地指针变量并且它指向&ptr_x,因此当我取消引用时*x它等于&x。
那么,temp(并且*a也可以用作整数)可以保存/*b的实际地址,这就是它起作用的原因?xy
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
printf("in main:\n");
int x = 2;
int y = 8;
int *ptr_x = &x;
int *ptr_y = &y;
printf("ptr_x points to = %p\n", ptr_x);
printf("ptr_y points to = …Run Code Online (Sandbox Code Playgroud)