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返回一个引用类型。
新闻热点
疑难解答
图片精选