int main()
{
int a = 3;
int *b = &a;
cout << "a:" << a << endl;
cout << "b:" << b << endl;
*b = 10;
cout << "&a:" << &a << endl;
cout << "b:" << b << endl;
system("pause");
}
a:3
b:00EFFE28
&a:00EFFE28
b:00EFFE28
a:10
分析:
b是a的指针,指向a的地址。(也就是a与b相连,只要修改*b的值,a的值也跟着改动)
//函数传入指针参数
void fun(int *a, int *b)
{
int c = 0;
c = *a;
*a = *b;
*b = c;
}
int main()
{
int a = 1;
int b = 2;
cout << a << "," << b << endl;
fun(&a, &b);//a,b交换
cout << a << "," << b << endl;
system("pause");
return 0;
}
结果:
1,2
2,1
分析:
函数的参数传入的是指针,即地址。函数中a,b的交换是地址的值交换。最后main()中的a,b的值也就改变了。