欢迎光临散文网 会员登陆 & 注册

小人物学个大习(41-50)

2023-06-29 00:51 作者:白羽腰间插  | 我要投稿
C++ primer
  1. 列表初始化:要想定义一个名为units_sold的int变量并初始化为0,以下的4条语句都可以:
    int units_sold = 0;
    int units_sold ={0};
    int units_sold{0};
    int units_sold(0);
    这种初始化的形式被称为列表初始化,如果我们使用列表初始化且初始值存在丢失信息的风险,则编译器将报错
    long double ld=3.1415926;
    int a{ld}; //错误,会造成信息丢失

  2. 如果定义变量时没有指定初值,则变量被默认初始化,此时变量被赋予了“默认值”。默认值由变量类型,变量位置决定。
    内置类型 函数体之外 0
    函数体之内 不被初始化 未定义

  3. C++语言支持分离式编译机制,为了支持分离式编译,C++语言将声明和定义区分开来。声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。而定义负责创建与名字关联的实体。变量声明规定了变量的类型和名字,在这一点上定义与之相同。但是除此之外,定义还申请存储空间,也可能会为变量赋一个初值。

  4. 如果想声明一个变量而非定义它,就在变量名前添加关键字 extern,而且不要显式地初始化变量:
    extern int i;声明I
    int j; 声明并定义j
    任何包含了初始化的声明即成为定义

  5. 可以通过前后缀、改变整型,浮点型和字符型字面值的默认类型。
    字符和字符串
    u char16_t
    U char32_t
    L wchar_t
    u8 char utf-8
    整型
    U OR u unsigned
    L or l long
    LL or ll longlong
    浮点型
    f or F float
    l or L long double

  6. 用户定义的标识符中不能连续出现两个下划线,也不能以下划线紧连大写字母开头。此外,定义在函数体外的标识符不能以下划线开头。

  7. 约定俗成的命名规范:
    标识符要能体现实际含义
    变量名一般用小写字母 如 index
    用户自定义的类名一般以大写字母开头如Sales_item
    如果标识符由多个单词组成,则单词间应有明显区分,如student_loan 或 studentLoan

  8. 作用域(scope)是程序的一部分,在其中的名字有其特定的含义。C++语言中大多数作用域都以花括号分隔。
    同一个名字在不同作用域中可能指向不同的实体。
    名字的有效区域始于名字的声明语句,以声明语句所在的作用域末端为结束。

  9. 作用域能彼此包含,被包含的作用域称为内层作用域,包含着别的作用域的作用域称为外层作用域
    int unique =42;
    {
    int unique =0;
    cout<<::unique<<endl;
    }
    上述代码最终显示的是42
    int i = 1;
    int main()
    {
    int i =2, sum = 0;
    // for(int i=0;i!= 10;++i)
    // sum +=i;
    { int i =3;
    cout<<::i<<endl;
    }
    return 0;
    }
    上述代码想显示的是1

  10. 引用为对象起了另外一个名字,引用类型引用另外一种类型,通过声明符&来定义引用类型

不管学习的质量如何,总是要坚持学习。

2023年6月29日


小人物学个大习(41-50)的评论 (共 条)

分享到微博请遵守国家法律