c++编程思想(三)--c++中c

本章开始讲解了一些简单的语法规则,以及c++和c的区别,本身简而言之记录了一些有争议的或者看了有歧义的,常规语法就略之c++

一、++i(先进行自加,再带入运算) 和 i++ (先运算,再自加),验证结果以下编程

二、switch后能够跟整数(字符也能够,由于内存里字符也是按照整数存储的,一 一对应)安全

三、c++编程思想里认为内建数据类型只有四个:char ,int ,float 和 double多线程

  而bool类型是标准c++加进来的,最好用true 和flase ,不用隐式将int转换为bool(这正是平时最经常使用的)函数

  long ,short ,signed ,unsigned 被认为是说明符优化

  可是平时咱们认为的八大基本类型是:byte ,short ,int ,long ,float ,double ,bool ,char spa

四、像函数传递值时,在函数内部生成一个拷贝,这个是“按值传递”,外部变量值没变线程

  咱们能够经过指针和引用来改变,实际指针和引用均可以理解为外部变量的别名 指针

五、不能使用void型引用,void型指针能够,并且意味着任何类型的指针均可以间接的引用那个指针地址对象

  如:void *p;  *((int *)p) = 3;可是因为自由转换,能够再转成char *,改变内存,可能引发崩溃,可是不少时候用的,好比多线程的的时候

六、c规定在做用域开始处就定义全部变量,可是c++能够在做用域任何地方

七、static 做用:a 只在第一次调用时初始化,后面值在以前基础上处理,并且在函数外不可用 b引伸于前面,在文件最开始的时候static申明,其余文件extern也没   用,避免命名冲突 ,此外,static是内部连接,extern是外部连接

八、字符型和常数对应关系

九、volatile 防止编译器优化

十、优先级实在多,且不一样语言的优先级会不同,因此记得一个最基本,其他的能够查表

基本的优先级须要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。
 
十一、位移以后舍弃的位能够左旋或右旋,机器级是有的,c++/C是创建最小的语言,所以舍弃,能够本身实现
 
十二、c++显示转换:
1)、static_cast:static_cast类型转换用于相关类型之间的转换
(a)父类和子类之间的转换。
(b)用于基本数据之间的转换,如:把int转成char。
(c)空指针转与目标类型的指针之间的互相转换
2)、const_cast: 这个运算符能够用来去除一个对象的const或volatile属性,type-id必须是一个指针或者引用。
3)、reinterpret_cast:最不安全的一种方式,彻底不一样类型转换,如将一个十六进制整数转换为内存地址(由int-->指针类型,这两种类型彻底不关联)。既然是用于不相关类型之间的转换,也就意味着编译器不会作太多的确认和承诺。reinterpret_cast方式还有一个特色就是:目标和原始值之间至少有相同的位数,咱们能够将转换以后的值再转换回去,而不像其它3种类型可能会致使精度丢失。
4)、dynamic_cast:一种运行时(run-time)检测的类型转换,所以转换可能须要较大的运行时代价,这种类型也是用C-style是没法实现的。主要用于执行类型向下转换和继承之间的转换。安全类型向下转换,这个后面细讲
 
写代码的小熊猫,开开心心每一天,(*^@^*)
相关文章
相关标签/搜索