C语言 地址传递交换实参数值

采用地址传递实现实参数值的交换
问题1.如何输出实参和形参的地址
2 .实参形参地址变化过程的分析

  1. 实参和形参,你应该都写的指针吧? printf("%x") 用%x 打印地址
  2. 实参和形参,说白了,就是个普通变量,唯一不同就是这个变量可以指向另外一个地址

假如 实参int p1,形参 int m1;
假如 p1 地址为0x1000,p1 的值为 0x1234,当你传递的时候,m1 的值一定也是0x1234,但是m1 的地址,可能是 0x2000

1.c语言不支持引用传递,所以形参需要定义成指针
2.形参是指针,它的地址没有变化;实参的地址更没有变化

C语言没有引用传递的概念,只能依靠指针

void swap(int* a, int* b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}