输出结果如下图所示:
从结果看到,a和b的值没有变,变的是pa和pb这两个指针的值。
C++引用方式:
也可以通过传递指向指针的引用来实现指针的交换。
需用*定义指针,用&定义引用,如果要交换两个指针,形参类型如下(以int为例):
int *&ptr
这个从右至左理解,首先ptr是个引用,需要用&符号,其次ptr与指向int型对象的指针相关联,需要用*符号。
则交换指针的核心代码如下:
?
- void ptrSwp(int *&pi,int *&pj) {
- int *pk = pi; pi = pj;
- pj = pk; }
demo如下:
- #include <iostream> using namespace std;
- void ptrSwp(int *&pi,int *&pj) {
- int *pk = pi; pi = pj;
- pj = pk; }
- int main()
- { int i=42,j=24;











