• 指针的引用


    指针(*)和引用(&),解引用(*)和取地址(&), 主要观察是在左面, 还是在右面, 如果在左面是前者, 在右面是后者;

    如果比较多, 则要认真观察, 譬如int*&, 就是指针的引用, 可以避免指针内部元素的复制;

    还有其他的一些形式, 见下面的例子;

    /*
     * test.cpp
     *
     *  Created on: 2013.11.12
     *      Author: Caroline
     */
    
    /*eclipse cdt; gcc 4.7.1*/
    
    #include <iostream>
    
    int main (void) {
    
        int i(10);
        int* j = &i;
        int i1(20);
        int*& k = j; //指针的引用, *k是*j的引用
        *k = i1; //修改*k所指的内容, 则修改*j的内容;
    
        typedef int* pint;
        pint& k2 = j;
        
        int* k3 = &*j, k4 = 10;
    
        std::cout << "*k = " << *k <<std::endl;
        std::cout << "*j = " << *j <<std::endl;
        std::cout << "*k2 = " << *k2 << std::endl;
        std::cout << "*k3 = " << *k3 << std::endl;
        std::cout << "k4 = " << k4 << std::endl;
    
        return 0;
    
    }

    :&作为取地址操作时,其行为结果是在编译时就被确定的;而*,解引用操作(或取内容)操作,其行为结果只能在运行时才可被确定

  • 相关阅读:
    Windows 8.1 序列化与反序列化
    window store app 附件读取
    Window 8.1 计时器功能及图片切换
    c#多层嵌套Json
    isNotNull与isNotEmpty的区别
    商务用语
    国家气象局三天天气WebService接口
    WebServise
    EF架构基础代码
    接口定义
  • 原文地址:https://www.cnblogs.com/csxf/p/3718952.html
Copyright © 2020-2023  润新知