zoukankan      html  css  js  c++  java
  • [C++] 交换指针

    编写一个函数,令其交换两个int指针。

    交换两个值可以使用两种形式,一种是使用引用传递实参进行交换,另一种是使用指针以值传递的方式进行交换。

    题目要求交换两个int指针,也可以参考交换值的两种形式。

    1、使用指向指针的指针进行交换。

    void swapPointerUsePointer(int **p, int **q)
    {
        int *t = *p;
        *p = *q;
        *q = t;
    }

    2、使用引用来传递指针进行交换、

    void swapPointerUseReference(int *&p, int *&q)
    {
        int *t = p;
        p = q;
        q = t;
    }

    测试代码如下:

    int main()
    {
        int a = 100, *p = &a;
        int b = 200, *q = &b;
        cout << "original pointer and value: " << endl;
        cout << "a: " << p << " value: " << *p << endl;
        cout << "b: " << q << " value: " << *q << endl;
        cout << endl;
        cout << "after swap by pointer the current pointer and value: " << endl;
        swapPointerUsePointer(&p, &q);
        cout << "a: " << p << " value: " << *p << endl;
        cout << "b: " << q << " value: " << *q << endl;
        cout << endl;
        cout << "after swap by reference the current pointer and value: " << endl;
        swapPointerUseReference(p, q);
        cout << "a: " << p << " value: " << *p << endl;
        cout << "b: " << q << " value: " << *q << endl;
        cout << endl;
        return 0;
    }

    测试结果如下:

    original pointer and value:
    a: 006FF780 value: 100
    b: 006FF768 value: 200
    
    after swap by pointer the current pointer and value:
    a: 006FF768 value: 200
    b: 006FF780 value: 100
    
    after swap by reference the current pointer and value:
    a: 006FF780 value: 100
    b: 006FF768 value: 200
  • 相关阅读:
    opacity兼容性以及存在问题处理
    删除节点方法要注意的区别
    java基础-常见面试题(一)
    第04次作业-树
    第03次作业-栈和队列
    第02次作业-线性表
    Data_Structure-绪论作业
    C语言第二次实验报告
    C语言第一实验报告
    mysql 查询优化
  • 原文地址:https://www.cnblogs.com/immjc/p/8081415.html
Copyright © 2011-2022 走看看