zoukankan      html  css  js  c++  java
  • 【C++】C++复合变量的定义及易错点

    //常量,必须初始化,之后不可作为左值
    const int ival=1;
    /*
    变量
    1.如果是全局内置类型变量,会进行默认初始化,初始化为0或者空串,false
    2.如果是局部内置类型变量,未经过初始化就使用会导致错误,编译失败
    3.如果是类类型对象,取决于默认构造函数
    */
    int ival1;
    /*
    整型指针,可以进行算术运算,移动单位取决于指针类型,解引用前需确保指针所指空间不为空
    */
    int* ival2=&ival1;
    
    /*
    整型指针的指针
    */
    int **ival22=&ival2;
    /*
    整型变量的引用,不是对象,没有内存空间,没有地址,只是别名而已,不存在引用的引用,不存在引用的指针,必须初始化,之后不可解绑
    */
    int& ival3=ival1;
    
    /*
    整型指针的引用
    */
    int* (&ival4) = ival2;
    //语法错误,因为引用不是对象,没有内存空间,没有地址,不存在引用的指针,不存在引用的引用
    int& (* ival5);
    //语法错误,因为引用不是对象,没有内存空间,没有地址,不存在引用的指针,不存在引用的引用
    int& (& ival5);
    
    /*
    顶层const,表示这个整型指针是常量,必须初始化,且不可重新赋值
    */
    int* const ival6 = &ival1;
    /*
    整型引用,这里的const没有意义,因为引用本身定义的时候就必须初始化,且一旦绑定就不可解绑
    */
    int& const ival7 = ival1;
    //底层const,表示整型常量的指针,指针可以重新赋值,但不可用指针修改整型常量
    const int* ival8;
    //底层const,表示整型常量的引用,引用任何时候都需要初始化,且不可重新赋值,这里const表示不可通过引用修改原常量
    const int& ival9=ival1;
    //整型常量的指针常量,必须初始化,既不可修改指针,也不可修改指针所指对象
    const int* const ival = &ival1;
    //整型常量的常量引用,必须初始化,不可修改引用,不可修改引用所引对象
    const int& const ival = ival1;
    return 0;
    
  • 相关阅读:
    日期格式不合法
    DataGridView的Scrollbar通過編程不能自動下滾
    Sourcesafe shadown backup
    共享目錄突然不工作 
    VS2005編譯后版本如何控制
    WebBrowser用作RichTextBox
    怎樣設定MS Reporting自動橫向列印
    VSS 2005不需登錄,直接開啟的方法
    subreport cannot be shown
    An Algorithm Summary of Programming Collective Intelligence (5)
  • 原文地址:https://www.cnblogs.com/ericling/p/15310219.html
Copyright © 2011-2022 走看看