zoukankan      html  css  js  c++  java
  • 常量引用

    思考cost int &a = b PK const int &a = 10;

    C++中可以声明const引用

    const Type& name = var

    const引用让变量拥有只读属性 

    //常引用的知识架构
    int main(void)
    {
        //普通引用
        int a=10;    
        int &b=a;    
        printf("b:%d
    ",b);
        
        //常引用
        int x =20;
        const int &y = x; //常引用 是 让变量 引用只读属性 不能通过y去修改x了
        //y = 21; //报错 error: assignment of read-only reference 'y'
    
        //常引用 初始化 分为2种情况
        //1> 用变量 初始化 常引用
        {
            int x1 = 30;
            const int &y1 = x1;  //用X1变量去初始化 常引用
        }
        //2> 用字面量 初始化 常量引用
        {
            const int a = 10; //C++编译器把a放在符号表中
            //int &m = 41; //普通引用 引用一个字面量 字面量有无内存地址
            //引用 就是给内存取多个门牌号(多个别名)
            //printf("&41:%d
    ",&41);
            const int &m = 43; //C++编译器 会 分配内存空间 
                              //43无内存空间,若放在代码区 则放在代码区
        }
        
        return 0;
    }
    struct Teacher1
    {
        char name[64];
        int age;
    };
    
    //const引用让变量(所指内存空间)拥有只读属性
    //void printTeacher(const Teacher1 *const pt)
    void printTeacher(const Teacher1 &pt)
    {
        //pt.age = 33; //const引用让变量(所指内存空间)拥有只读属性
        printf("pt.age:%d
    ",pt.age);
    }

    const引用结论  

    1Const & int e  相当于 const int * const e

    2)普通引用 相当于 int *const e1

    3)当使用常量(字面量)对const引用进行初始化时,C++编译器会为常量值分配空间,并将引用名作为这段空间的别名

    4)使用字面量对const引用初始化后,将生成一个只读变量

     

  • 相关阅读:
    Javadoc注释的用法
    Java 和 Android系统环境变量设置
    [转载]Android开发新浪微博客户端 完整攻略 [新手必读]
    eclipse中Android程序字符编码不统一的解决方案
    用word2007写blog时表格的显示效果
    解决Vista中的文件关联图标问题。
    用word2007在博客园发布带图片的blog
    在c++中使用gotoxy
    动态多线程任务管理
    几个视频切割工具
  • 原文地址:https://www.cnblogs.com/Liu-Jing/p/9692892.html
Copyright © 2011-2022 走看看