《C++ Primer 第五版》学习笔记-第二章-变量和基本类型

来源:互联网 发布:安卓的c语言编译器 编辑:程序博客网 时间:2024/05/02 14:39

1. C++提供了几种字符类型

    char<字符>可以存放机器基本字符集中的任意字符对应的数字值

    wchar_t<宽字符>可以存放机器最大扩展字符集中的任意一字符

    char16_t和char32_t是Unicode字符,用于表示所有自然语言中字符的标准


2. 字符型分为char, signed char, unsigned char.

    char和signed char并不一样,char由编译器决定表现为有符号还是无符号。因此不要用char做算术运算,要明确指定signed char或者unsigned char


3. 当表达式里既有带符号类型又有无符号类型时,带符号类型会自动转换成无符号类型


4. 以0开头的整数代表八进制数,以0x开头的整数代表16进制数

    例如表示20:  20,  024,  0x14


5. \x后跟一个或多个十六进制数,或者\后跟1个,2个或3个八进制数字,其中数字部分表示的是字符对应的数值

    如字符M对应77, char c=77, \x4d, \115均为字符M


6.const对象必须初始化

    const对象被设定为仅在文件内有效(编译器进行替换,因此文件内必须有定义),如果想在多个文件之间共享const对象,必须在变量的定义之前添加extern关键字

    引用必须在定义时用一个对象进行初始化,初始化之后两者就绑定在了一起,以后也不能修改这样的绑定关系。


7. 初始化常量引用时,允许用任意表达式作为初始值,只要表达式的结果能转换成引用的类型即可。


8. 指向常量的指针可以指向一个非常量对象,然后想要存放常量对象的地址,只能使用指向常量的指针。


9. 常量指针必须初始化

const int *p; //指向常整型的指针P,底层constconst int* const p; //指向常整型的常指针P,必须初始化int* const p; // 指向整型的常指针P,必须初始化

10. 用于声明引用的const是底层const

    指针类型的const可以是顶层也可以是底层

    其他类型的const都是顶层const


11. 认定一个变量是一个常量表达式的话,就把它声明为constexpr类型


12. 当typedef遇上const

   

typedef char *pstring; //pstring是指向char的指针const pstring cstr = 0; // cstr是指向char的常量指针const pstring *ps; // ps是指向char常量指针的指针

13. auto类型必须有初始值,且一条语句声明的多个变量的初始类型必须一样。


14. decltype返回操作数的数据类型

    decltype((var))的结果永远是引用,而decltype(var)只有当 var是引用时结果才是引用。


15. 当表达式的结果对象能作为一条赋值语句的左值时,decltype返回一个引用类型。




0 0
原创粉丝点击