传值,传指针,传引用

传值

void swap(int a, int b);

int a1 = 2, b1 = 3;

swap(a1,b1);

--------------------------------

a=2, b=3   (a,b是局部变量,有自己的地址, a和a1, b和b1的地址是不同的,只是值相同而已)

 

传指针 (本质上也是传值,只不过传的是指针这个值)

void swap(int *a, int *b);

int a1 = 2, b1 = 3;

swap(&a1, &b1);

--------------------------------

a=a1的地址,b=b1的地址 (a,b是局部变量,有自己的地址,其值是a1,b1的地址,a,b是a1,b1的指针)

 

传引用

void swap(int &a, int &b);

int a1 = 2, b1 = 3;

swap(a1, b1);

-------------------------------

a的地址=a1的地址,b的地址=b1的地址   a和a1, b和b1在内存中重合

 

Java中只有值传递,C++中三种都有。

posted on 2013-12-24 22:39  Happykiller  阅读(311)  评论(0编辑  收藏  举报

导航