C++基础系列之要点总结(1)
2017-04-05 19:37
316 查看
1. C++是一种静态数据类型语言,它的类型检查发生在编译时。因此,编译器必须知道程序中每一个变量对应的数据类型。相比于C,它的变量可以在使用时即时定义或声明使用。这样既可以更加方便地声明变量,又由于变量声明之处即为其使用的位置而能清楚地知道变量存在的意义。
2. 不能对void *所指向的对象进行操作,因为我们并不知道该对象的具体类型,也就无法确定能在这个对象上做哪些操作。
3. The key differences between pointer and reference:
4. 常量引用仅对引用可参与的操作做出了限定,对于引用对象本身是不是一个常量未做限定。即对象本身可以是非常量,允许通过其他途径修改其值。
总结:普通类型可以向更细化的类型转换,反之则行不通。
NOTE:引用是对指针的深层包装,所以只有指针的引用,没有引用的指针。
5. 常量表达式是指其值不会改变并且在编译过程就能得到计算结果的表达式。
const int test =1; //test 是常量表达式
const int sz =get_size(); //sz 并不是常量表达式
6. auto类型(C11)说明符使编译器自动确定表达式的类型,并将左值对象转换之:
7. 遇到一条使用了类型别名声明的语句时,不要错误地尝试把类型别名替换成它本来的样子来理解:
如果这样理解cstr: const char*cstr = 0; //是对const pstring cstr的错误理解
8. 类型不同的变量之间不能互相赋值,之所以可以是因为存在一个隐藏的与右值类型相同的变量作为桥梁转换。
9. auto 一般会忽略顶层const,同时底层const则会保留下来(int i = 0):
(DZH:底层是指针所指或引用绑定对象的属性,而上层则是对象本身的属性)
符号&、*只从属于某个声明符,而非基本数据类型的一部分。
10. decltype 作用是选择并返回操作数的数据类型:
decltype 如果使用的是一个不加括号的变量,则得到的结果就是该变量的类型;如果给变量加上一层或多层括号,编译器就会把它当成是一个表达式。
切记:decltype(())的结果永远是引用!
2. 不能对void *所指向的对象进行操作,因为我们并不知道该对象的具体类型,也就无法确定能在这个对象上做哪些操作。
3. The key differences between pointer and reference:
4. 常量引用仅对引用可参与的操作做出了限定,对于引用对象本身是不是一个常量未做限定。即对象本身可以是非常量,允许通过其他途径修改其值。
总结:普通类型可以向更细化的类型转换,反之则行不通。
NOTE:引用是对指针的深层包装,所以只有指针的引用,没有引用的指针。
5. 常量表达式是指其值不会改变并且在编译过程就能得到计算结果的表达式。
const int test =1; //test 是常量表达式
const int sz =get_size(); //sz 并不是常量表达式
6. auto类型(C11)说明符使编译器自动确定表达式的类型,并将左值对象转换之:
7. 遇到一条使用了类型别名声明的语句时,不要错误地尝试把类型别名替换成它本来的样子来理解:
如果这样理解cstr: const char*cstr = 0; //是对const pstring cstr的错误理解
8. 类型不同的变量之间不能互相赋值,之所以可以是因为存在一个隐藏的与右值类型相同的变量作为桥梁转换。
9. auto 一般会忽略顶层const,同时底层const则会保留下来(int i = 0):
(DZH:底层是指针所指或引用绑定对象的属性,而上层则是对象本身的属性)
符号&、*只从属于某个声明符,而非基本数据类型的一部分。
10. decltype 作用是选择并返回操作数的数据类型:
decltype 如果使用的是一个不加括号的变量,则得到的结果就是该变量的类型;如果给变量加上一层或多层括号,编译器就会把它当成是一个表达式。
切记:decltype(())的结果永远是引用!
相关文章推荐
- C++基础系列之要点总结(2)
- 编程语言系列(二)--C++语言基础知识点总结
- c++总结系列(-)----动态库(dll)
- C/C++语言基础知识总结
- http协议学习和总结系列——基础概念篇
- C++要点总结
- C++总结之基础篇
- c++ 的11个要点基础知识
- [分类整理I]微软等100题系列V0.1版:c/c++基础面试题集锦
- C++字符串系列1:字符编码基础
- [分类整理I]微软等100题系列V0.1版:c/c++基础面试题集锦
- [分类整理I]微软等100题系列V0.1版:c/c++基础面试题集锦
- c/c++基础(一) 字符串系列-外加mem处理
- 您需要注意的c++ 的11个要点[转贴] 基础知识
- C++ 自然语言编码详解系列一(字符编码基础)
- C++ 基础总结
- c++总结系列(一)---动态库dll中使用资源
- C++ 人工智能算法系列一(神经网络算法基础知识)
- 基于C++的纯面向对象的通用高性能大并发TCP-SERVER/CLIENT开发框架实践系列之基础篇
- C++基础知识复习&总结