#include <stdio.h>
void exchange(int one, int another) {
int tmp;
tmp = one; /*将one空间的值赋值给tmp空间*/
one = another; /*将another空间的值赋值给one空间*/
another = tmp; /*将tmp空间的值赋值给another空间*/
}
int main() {
int num1;
int num2;
scanf("%d %d", num1,num2);
exchange(num1, num2);
printf("num1 = %d, num2 = %d", num1, num2);
return 0;
}
realExchange(&num1, &num2);
void realExchange(int *one, int *another) {
int tmp;
tmp = *one; /*将one空间所指向的空间的值赋值给tmp空间*/
*one = *another; /*将another空间所指向的空间的值赋值给one所指向的空间*/
*another = tmp; /*将tmp空间的值赋值给another所指向的空间*/
}
其中,对于exchange()函数和realExchange()函数的内存映像图解释分别如下。
int *one = &num1 <=> one指向num1
主现:主函数现场信息;栈:操作系统内存管理角度的”系统堆栈“。
exchange()函数 realExchange()函数