11:17:57 C++中的全部基本类型 类型名字节数 取值范围 bool true、 false char [signed] char 1111 128-127 -128--127 unsigned char 0-255 int 4 231-231-1 Signed] int 231-1 unsigned [int] 0-232-1 [signed] short [int] 2-32768--32767 unsigned short [int] 20-216-1 [signed] long [int] 4 -231--231-1 unsigned long [int] 0--232-1 floa t 4-3.4E(+/)38--3.4B(+/)38 double [float 1.7E(+/-)308-1.7E(+/-)308 1 ong double [f loat]10-3.4B(+/-)4932-34(+/)4932
11:17:57 6 类型名 字节数 取值范围 bool 1 true、false char 1 -128 -- 127 [signed] char 1 -128 -- 127 unsigned char 1 0 -- 255 int 4 -2 31 -- 2 31-1 [signed] int 4 -2 31 -- 2 31-1 unsigned [int] 4 0 -- 2 32-1 [signed] short [int] 2 -32768 -- 32767 unsigned short [int] 2 0 -- 2 16-1 [signed] long [int] 4 -2 31 -- 2 31-1 unsigned long [int] 4 0 -- 2 32-1 float 4 -3.4E(+/-)38 -- 3.4E(+/-)38 double [float] 8 -1.7E(+/-)308 -- 1.7E(+/-)308 long double [float] 10 -3.4E(+/-)4932 -- 3.4E(+/-)4932 C++中的全部基本类型
11:17:57 二.运算符与表达式 1.运算符 算术运算符:+一*/% 关系运算符:>>==< 逻辑运算符:&&‖! 位运算符:& > 赋值运算符:=+=一=*=/=%=<<=>=&= 条件运算符:? 逗号运算符 指针运算符:&* 求字节运算符: sizeof 函数调用运算符、强制类型转换运算符:() 分量运算符: 数组下标运算符:[] 作用范围分解运算符::: 动态内存分配符:new、 delete 插入提取运算符:<<>
11:17:57 7 二.运算符与表达式 1.运算符 – 算术运算符:+ - * / % ++ -- – 关系运算符:> >= == < <= != – 逻辑运算符:&& || ! – 位运算符:& | ^ ~ << >> – 赋值运算符:= += -= *= /= %= <<= >>= &= |= ^= – 条件运算符: ?: – 逗号运算符: , – 指针运算符:& * – 求字节运算符:sizeof – 函数调用运算符、强制类型转换运算符:() – 分量运算符: . -> – 数组下标运算符:[] – 作用范围分解运算符::: – 动态内存分配符:new、delete – 插入提取运算符:<< >>
11:17:57 运算符的优先级与结合性 运算符 含义 要求操作对象数目结合性 括号 作用范围分解(限定)运算 符数组下标运算符 左→>右 成员运算符 +一 自增自减 & 取地址 指针引用 逻辑非 按位取反 右→>左 正负号 强制类型转换 sizeof求字节 new delete动态分配释放内存 /%乘法除法求余 左→>右 加法减法
11:17:57 8 –运算符的优先级与结合性 运算符 含义 要求操作对象数目 结合性 () :: [ ] . -> 括号 作用范围分解(限定)运算 符数组下标运算符 成员运算符 左->右 ++ -- & * ! ~ + - ( ) sizeof new delete 自增 自减 取地址 指针引用 逻辑非 按位取反 正 负号 强制类型转换 求字节 动态分配 释放内存 1 右->左 * / % 乘法 除法 求余 2 左->右 + - 加法 减法 2
11:17:57 运算符的优先级与结合性(续表) 运算符 含义 要求操作对象数目结合性 > 左移右移运算符 <= 小于小于等于 >>= 大于大于等于 =〓 等于不等于 & 按位与 左→>右 按位异或 按位或 && 逻辑与 逻辑或 ? 条件运算符 右→>左 赋值运算符 +=一*/=%=扩展的赋值运算符 右→>左 <<=>>=&=^= 逗号运算符 左→>右
11:17:57 9 –运算符的优先级与结合性(续表) 运算符 含义 要求操作对象数目 结合性 << >> 左移 右移运算符 2 左->右 < <= > >= 小于 小于等于 大于 大于等于 == != 等于 不等于 & ^ | 按位与 按位异或 按位或 && 逻辑与 || 逻辑或 ?: 条件运算符 3 右->左 = += -= *= /= %= <<= >>= &= ^= |= 赋值运算符 扩展的赋值运算符 2 右->左 , 逗号运算符 2 左->右
11:17:57 C+中的类型转换 转换运算符:( 两种强制类型转换的方法: (目标类型名)表达式: float x=2. 5; int y; y=(int)x, 目标类型名(表达式) float x=2. 5; int y; y=int(x) C++中的显式转换 static-cast 以不用强制类型转换但一定会发生转换的地方(为 了更清楚、理醒目而使用) const-cast const和 volatile进行转换 reinterpret-cast 转换为完全不同的意思,必须转换回原来的类型才 能安全的使用,最为危险 dynamic-cast把基类对象(指针转换为派生类对象(指针)时使用 使用方式 转换用关键字<目标类型名>(待转换的表达式
11:17:5710 –C++中的类型转换 –转换运算符:() 两种强制类型转换的方法: • (目标类型名)表达式: float x=2.5; int y; y=(int)x; • 目标类型名(表达式): float x=2.5; int y; y=int(x); –C++中的显式转换 static_cast 可以不用强制类型转换但一定会发生转换的地方(为 了更清楚、理醒目而使用) const_cast 对const和volatile进行转换 reinterpret_cast 转换为完全不同的意思,必须转换回原来的类型才 能安全的使用,最为危险 dynamic_cast 把基类对象(指针)转换为派生类对象(指针)时使用 –使用方式 转换用关键字<目标类型名>(待转换的表达式)