• C++ Primer 笔记——变量


    1. 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来代替。

    2.使用列表初始化内置类型的变量时,如果初始值存在丢失信息的风险,则编译器将报错。

    int i{0.1};    // 错误


    3.如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示的初始化它,任何包含了显示初始化的声明即成为定义。

    extern int i;    // 声明i而非定义i
    int j;            // 声明并定义j  
    extern double pi = 3.14;    //定义,如果在函数体内试图初始化一个extern变量将报错


    4.引用并非对象,相反的,它只是为一个已经存在的对象起的另外一个名字。

    5.一旦引用的初始化完成,引用将和它的对象一直绑定在一起,所以引用在定义时必须初始化。

    6.在支持C++ 11的情况下空指针最好使用nullptr,而尽量避免使用NULL。至于原因可以看如下链接:

    http://www.cnblogs.com/zoneofmine/p/7224947.html

    7.void* 是一种特殊的指针类型,可用于存放任意对象的地址,但是我们不知道这个地址中到底是个什么类型的对象,所以也无法对这个对象做操作。

    8.在定义多个变量的时候,类型修饰符(*或&)仅仅修饰最近的那个变量。

    int* p1, p2;    // p1是int指针,p2是int

    9.引用本身不是一个对象,所以不能定义指向引用的指针,也没有引用的引用。

    10.decltype的表达式如果是加上了括号的变量,结果将是引用。

    int i = 0;
    decltype((i)) a;    // 错误,a是int&,没有初始化
    decltype(i) b;        // 正确,b是一个int
  • 相关阅读:
    JavaScript——math对象
    JavaScript——日期相关
    JavaScript——数组与数组方法
    JavaScript——数值
    JavaScript——字符串方法
    关于CSS的一些问题(一)
    html5新增标签
    svg
    在自定义组件中使用v-model
    百度地图定位
  • 原文地址:https://www.cnblogs.com/zoneofmine/p/7224923.html
Copyright © 2020-2023  润新知