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;
    
  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    103. Binary Tree Zigzag Level Order Traversal
    102. Binary Tree Level Order Traversal
    690. Employee Importance
    1723. Find Minimum Time to Finish All Jobs
    LeetCode 329 矩阵中最长增长路径
    7.2 物理内存管理
    LeetCode 面试题 特定深度节点链表
    LeetCode 100 相同的树
    npm安装包命令详解,dependencies与devDependencies实际区别
  • 原文地址:https://www.cnblogs.com/ericling/p/15310219.html
Copyright © 2011-2022 走看看