指针作为参数
- 地址传递
- 值传递
先来看一个值传递的demo
#include <iostream>
using namespace std;
void swap(int a,int b) //拷贝的值
{
int t;
t = a;
a = b;
b = t;
}
int main(int argc, const char * argv[]) {
//值传递的demo
int a=10,b=100;
swap(a,b);
cout<<"a="<<a<<" b="<<b<<endl;
return 0;
}
run
a=10 b=100
#include <iostream>
using namespace std;
void swap(int *a,int *b)
{
int t;
t = *a;
*a = *b;
*b = t;
}
int main(int argc, const char * argv[]) {
//值传递的demo
int a=10,b=100;
swap(&a,&b);
cout<<"a="<<a<<" b="<<b<<endl;
return 0;
}
a=100 b=10
可以看到通过指针传递可以修改变量,其实指针传递也是copy,只不过copy的是指针,随时新的变量,单指向没有变,所以可以改变指向的变量