这两天看c++,指针这个设定真的是头疼 通过大佬指点写下自己的理解
#include "string"
void SwampValueA(int* numA, int* numB)
{
//*numA是 numA这个指针指向的内容
int temp = *numA;
*numA = *numB;
*numB = temp;
}
void SwampValueB(int &numA, int &numB)
{
int temp = numA;
numA = numB;
numB = temp;
}
void main()
{
int a = 100,c=10;
int* b = &a;
int* d = &c;
//交换
SwampValueB(a, c);
printf("a:%d\n", a);
printf("c:%d\n", c);
//交换
SwampValueA(b, d);
printf("a:%d\n", a);
printf("c:%d\n", c);
}
两个交换函数 一个用指针作形参 一个用引用
上述代码b,d都是int*类型
用SwampValueA这个函数 传入两个指针
函数内使用int类的temp用来临时存储参数一:numA所指向的对象 即用*numA来表示&a的值
而SwampValueB则是引用值来做参数 因此这两个值都可直接替换 无需指向
输出结果: