参数传递的三种方式
1、pass by value 单向传递、形参改变、实参不变
2、pass by address(pointer) 双向传递、形参改变、实参改变
3、pass by reference 双向传递、形参改变、实参改变(C++)
//pass by value 单向传递、形参改变、实参不变
void Swap1(int a,int b){
int temp=a;
a=b;
b=temp;
}
//pass by address(pointer) 双向传递、形参改变、实参改变
void Swap2(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
}
//pass by reference 双向传递、形参改变、实参改变(C++)
void Swap3(int &a,int &b){
int temp=0;
temp=a; a=b; b=temp;
}
#include <stdio.h>
#include<iostream>
using namespace std;
int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
int a=100,b=200;
//不借助第三个变量实现a,b交换
a+=b;
b=a-b;
a-=b;
printf("a=%d,b=%d\n",a,b);
a^=b;
b=a^b;
a^=b;
printf("a=%d,b=%d\n",a,b);
Swap1(a,b);
printf("a=%d,b=%d\n",a,b);
Swap2(&a,&b);
printf("a=%d,b=%d\n",a,b);
Swap3(a,b);
printf("a=%d,b=%d\n",a,b);
return 0;
}