①如果参数是基本数据类型,则实参赋给形参的是实参真实存储的数据值
②如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。
至于为什么是上面这样,建议你去看看不同数据类型在栈和堆上开辟的内存空间,你就会明白这个机制。
则交换两个数的方法为:
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
int main(){
int a = 1, b = 2;
swap(&a, &b);
printf(“%d %d”, a, b);
return 0;
}