【C++】C++Primer 阅读心得 九月总结

       已经用C++很久了~但是其实里面有很多特性还没有深入学习了解过~所以最近决定重温一遍C++~我一直觉得学习的语言不在于多~在于精~于是我选择了C++ primer来阅读~希望自己step by step~加油~!


1.1基本内置类型

  • bool
  • char
  • wchar_t
  • short
  • int
  • long
  • float
  • double
  • long double
        tip1:个人对wchar_t不太熟悉,它是为了表示中文,日文等2字节数据而产生的。

        tip2:对于unsigned类型的赋值问题,当对unsigned类型赋值一个大于它所能表示的数时,编译不会报错,他会使用这个数对取值数目取模,将取模后得到的值存入变量中;当对unsigned存储一个负数时,它保存的也是对取值数目取模后的结果。

       tip3:floate能保存的精度是6位有效数字,而double是10位。

       tip4:尽量用unsigned进行计数,因为她可以表示更大的范围,且不会出现负数;在浮点型中,尽量使用double类型,不仅精度高,在很多机器上,double计算比float快!


1.2字面值常量


       tip1:以0开头的字面值常量表示8进制。

       tip2:字面值整型常量的默认类型是int,long,可以在常量后面加上L,表示long,加上u表示unsigned。

       tip3:默认的浮点类型常量是double,在数值后面加上F(f)表示float类型,加上L表示long double。

       tip4:在字符常量前加上L表示wchar_t类型。

       tip5:转移字符的另类方式:\ooo(八进制),\xddd(十六进制)

       tip6:字符串连接,相邻的有空格,指标符,换行符分开的字符可以连接。如"aaa" "bbb"="aaabbb"

       tip7:如果有\多行符,那它必须是最后一个字符,不能有注释符哦!!

       tip8:http://hi.baidu.com/kathyxiami/item/a2a9f28b9ff05d52e73d197c 关于double,float的表示精度。

编程提示:使用typeid可以得到变量类型,如下:

       #include "iostream"
       #include <typeinfo>
       using namespace std;
       int main()
       {
               if(typeid(-10e-2) == typeid(double))
               {
                       cout<<"yes"<<endl;
               }
               return 0;
       }


2.3.3初始化,赋值和声明


       tip1:初始化分为2种形式:直接初始化和赋值初始化。

              直接初始化:int a(100);  

              复制初始化:int a=100;

               这两种方法第一种效率更高且更灵活,尤其在初始化类的时候,更能体现这两着的区别。

       tip2:初始化与赋值是2种不同的操作!!!尤其在类中。

       tip3:函数体内定义的内置变量不自动初始化,函数体外定义的内置变量都初始化为0。

       tip4:注意下定义和声明的区别,定义也是声明。使用extern可以只声明不定义,但是如果extern中有初始化式就是定义了,如:extern double pi = 3.14;这就会分配内存空间。

       tip5:const对象与普通对象的声明有区别,const对象默认为文件的局部变量。看如下例子:

              普通变量:

              //file_1.c

              int counter;

              //file_2.c

              extern int counter;

              ++counter;

              解释:普通变量在定义时不需要使用extern符号,因为它默认是整个程序可以访问的。

              -------------------------------------------------------

              const变量:

              //file_1.c

              extern const int counter = 100;

              //file_2.c

              extern const int counter;

              for(int i = 0; i < counter; i++)

             //........................................

       tip6:非const引用只能绑定到同类型的变量,而const可以绑定到不同但相关的对象。

              如:const int &r = 42正确,但int &r = 42;错误。

       tip7:枚举。默认第一个枚举成员赋值为0,后面递增,可以自己设置初始值,枚举成员是常量。

       tip8:枚举成员的值在初始化后不能改变。

       tip9:class与struct唯一的区别是默认访问级别,class默认访问级别是private,struct是public。

2.9.1设计头文件

       tip1:头文件用于声明,而不用于定义,但是有3中特殊情况需要放在头文件中定义:

                A.类定义

                B.值在编译时就已知的const对象(P59页末,值得深究)

                C.inline函数

       tip2:<>是标准头文件,先在环境变量路径下找。""是自定义头文件,先在源文件所在目录下找。

你可能感兴趣的:(【C++】C++Primer 阅读心得 九月总结)