本文来自http://blog.csdn.net/u012972188 ,引用必须注明出处!
C++的指针的简单使用
温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另一个博客http://blog.csdn.net/runaying、
#include <iostream>
void passValue(int x) // 值传递
{
x++;
std::cout << "passValue() -- x = " << x << std::endl;
}
void passReference(int &x) // 引用传递,只是在定义函数的时候,参数需要加&说明是接收参数的引用,而调用的时候和值传递一样,只填参数
{
x++;
std::cout << "passReference() -- x = " << x << std::endl;
}
void passPointer(int *x) // 指针传递,定义函数的时候,需要说明接收的是参数的指针,调用的时候使用取地址符&
{
(*x)++; // 先取得地址对应的值再执行++操作
std::cout << "passPointer() -- x = " << *x << std::endl;
}
int main()
{
int x(10);
std::cout << "x = " << x << std::endl;
passValue(x);
std::cout << "x = " << x << std::endl;
passReference(x);
std::cout << "x = " << x << std::endl;
passPointer(&x);
std::cout << "x = " << x << std::endl;
return 0;
}
结果:
x = 10 // 初始值为10
passValue() -- x = 11 // 在passValue()函数中++后输出11
x = 10 // 经过值传递后原值没有发生改变,说明值传递不会改变参数本身的属性
passReference() -- x = 11 // 在passReference()函数中++后输出11
x = 11 // 经过引用传递后原值发生了变化,说明引用传递会改变参数本身的属性
passPointer() -- x = 12 // 在passPointer()函数中++后输出12
x = 12 // 经过指针传递后原值也发生了变化,说明指针传递也会改变参数本身的属性,与引用传递不同的是调用函数需要使用&取地址符,并按指针的操作方式对参数进行操作。