zoukankan      html  css  js  c++  java
  • 引用&指针交换函数实践

    实践如下:

    #include <iostream>
    
    using namespace std;
    
    // 普通交换,注意这里的ab值,在具体调用时是基本数据的拷贝,原始数据不会变化
    // 因此这里交换后的值是不会变化的
    void swap(int a, int b){
        int tmp  = a;
        a = b;
        b = tmp;
    }
    
    // 引用交换, 参数和原始数据指向同一个地方,也可以理解为一种指针
    void refSwap(int &a, int &b){
        // 需要定义tmp存放临时变量的值
        int tmp = a;
        a = b;
        b = tmp;
    }
    
    // 指针交换, 参数和原始数据指向同一个地方
    void pointSwap(int *a, int *b){
        // 需要定义tmp存放临时变量的值
        int tmp = *a;
        // 指针指向地址值的调换
        *a = *b;
        *b = tmp;
    }
    
    int main(){
    
        cout << "引用&指针交换函数实践:" << endl;
        int a = 11;
        int b = 22;
        cout << "临时变量交换:"<< endl;
        swap(a, b);
        cout << "a:" << a << endl;
        cout << "b:" << b << endl;
    
        cout << "传引用交换:"<< endl;
        // 注意: 调用传引用时,只要传递普通常量就可以
        // 这里可以结合函数参数, &a = a, 所以这里只需要写a
        refSwap(a, b);
        cout << "a:" << a << endl;
        cout << "b:" << b << endl;
    
    
        cout << "指针交换:"<< endl;
        // 注意: 调用指针用时,需要加&
        // 这里可以结合函数参数, *a = &a, 所以这里需要写&取地址
        pointSwap(&a, &b);
        cout << "a:" << a << endl;
        cout << "b:" << b << endl;
    
        cout << "end." << endl;
        return 0;
    }

    输出如下:

  • 相关阅读:
    hello world!
    react(一):组件的生命周期
    position和BFC
    继承
    绕不开的this
    js世界这么大,闭包想看看
    js中数组常用方法总结
    Appium混合应用测试
    手机APP兼容性测试
    运行monitor提示需要安装旧JAVA SE 6运行环境
  • 原文地址:https://www.cnblogs.com/do-your-best/p/11141644.html
Copyright © 2011-2022 走看看