C++数据类型运算符和表达式中常见基本标准简单总结。
PS:笔者一直是用OneNote和原生Markdown记所有笔记,但是Octopress对Markdown原生格式的支持似乎不是很友好(sad..),格式会有些乱,过段日子窝会把md文件打包上来,谢谢理解ww!!
逻辑运算规则
a | b | !a | a&&b | a//b |
---|---|---|---|---|
false | false | true | false | false |
false | true | true | false | true |
true | false | false | false | true |
true | true | false | true | true |
转义字符
换行符 \n | 横向制表符 \t | 报警(响铃)符 \a | 纵向制表符 \v |
退格符 \b | 双引号 \" | 反斜线 \ | 问号 \? |
单引号 \’ | 回车符 \r | 进纸符 \f |
C语言原有关键字:
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
C++新增关键字:
and dynamic_cast operator true
and_eq explicit or try
asm export or_eq typeid
bitand false private typename
bitor friend protected using
bool inline public virtual
catch mutable reinterpret_cast wchar_t
class namespace static_cast xor
compl new template xor_eq
const_cast not this
delete not_eq throw
C++标点符号:
! % ^ & * ( ) – + = { } | ~
[ ] \ ; ‘ : “ < > ? , . / #
C++ 语言的基础类型
类别 类型 内容 整数 char 类型 char 是通常包含基本执行字符集成员的整数类型 - 默认情况下,这是 Microsoft C++ 中的 ASCII。
C++ 编译器将 char、signed?char 和 unsigned?char 类型的变量视为不同类型。char 类型的变量将提升到 int,就像它们在默认情况下是 signed?char 类型一样,除非使用 /J 编译选项。 在这种情况下,它们被视为 unsigned?char 类型并提升为 int(没有符号扩展)。
bool bool 类型是可以具有 true 或 false 这两个值之一的整数类型。 其大小未指定。
short short?int 类型(或 short)是大于或等于 char 类型的大小但小于或等于 int 类型的大小的整型类型。
?short 类型的对象可声明为 signed?short 或 unsigned short。Signed short 是 short 的同义词。
int int 类型是大于或等于 short?int 类型的大小但小于或等于 long 类型的大小的整数类型。
?int 类型的对象可声明为 signed?int 或 unsigned?int。Signed?int 是 int 的同义词。
__int8, __int16, __int32, __int64, __int128 固定大小的整数 __int``n,其中 n 是整数变量的大小(以比特为单位)。 (__int8、__int16、__int32、__int64 和 __int128 是 Microsoft 专用的关键字。 并非所有类型在所有体系结构上都可用。)
long long 类型(或 long?int)是大于或等于 int 类型的大小的整数类型。
?long 类型的对象可声明为 signed?long 或 unsigned?long。Signed?long 是 long 的同义词。
long?long 大于无符号 long。
?long long 类型的对象可声明为 signed?long long 或 unsigned?long long。Signed?long long 是 long long 的同义词。
wchar_t, __wchar_t wchar_t 类型的变量指定宽字符或多字节字符类型。 默认情况下,wchar_t 是本机类型,但可以使用 /Zc: wchar_t- 使 wchar_t 成为 unsigned short 的 typedef。__wchar_t 类型是本机 wchar_t 类型的 Microsoft 专用同义词。
在字符或字符串文本前使用 L 前缀可指定宽字符类型。
浮点 float float 类型是最小的浮点类型。 double double 类型是大于或等于 float 类型的大小但小于或等于 long?double 类型的大小的浮点类型。
Microsoft 专用:long double 和 double 的表示形式完全相同。 但是,long double 和 double 是不同的类型。
long double long?double 类型是大于或等于 double 类型的浮点类型。
C++ 运算符的优先级别和关联性
运算符说明 运算符
Group 1 precedence, no associativity
范围解析 ::
Group 2 precedence, left to right associativity
成员选择(对象或指针) . or –>
数组下标 [ ]
函数调用 ( )
后缀递增 ++
后缀递减 ––
类型名称 typeid( )
常量类型转换 const_cast
动态类型转换 dynamic_cast
重新解释的类型转换 reinterpret_cast
静态类型转换 static_cast
Group 3 precedence, right to left associativity
对象或类型的大小 sizeof
前缀递增 ++
前缀递减 ––
二进制反码 ~
逻辑“非” !
一元求反 -
一元加 +
address-of &
间接寻址 *
创建对象 new
销毁对象 delete
Cast Cast: ()
Group 4 precedence, left to right associativity
指向成员的指针(对象或指针) . or –>
Group 5 precedence, left to right associativity
乘法 *
除法 /
取模 %
Group 6 precedence, left to right associativity
添加 +
减法 –
Group 7 precedence, left to right associativity
左移 <<
右移 >>
Group 8 precedence, left to right associativity
小于 <
大于 >
小于或等于 <=
大于或等于 >=
Group 9 precedence, left to right associativity
相等 ==
不相等 !=
Group 10 precedence left to right associativity
按位“与” &
Group 11 precedence, left to right associativity
按位“异或” ^
Group 12 precedence, left to right associativity
按位“与或” |
Group 13 precedence, left to right associativity
逻辑“与” &&
Group 14 precedence, left to right associativity
逻辑“或” ||
Group 15 precedence, right to left associativity
条件运算 ? :
Group 16 precedence, right to left associativity
赋值 =
乘法赋值 *=
除法赋值 /=
取模赋值 %=
加法赋值 +=
减法赋值 –=
左移赋值 <<=
右移赋值 >>=
按位“与”赋值 &=
按位“与或”赋值 |=
按位“异或”赋值 ^=
Group 17 precedence, right to left associativity
引发表达式 throw
Group 18 precedence, left to right associativity
逗号 ,
扩展阅读:https://msdn.microsoft.com/zh-cn/library/126fe14k.aspx
@本地磁盘姬
ohayou.aimo.moe
微博:@萌萌的本地磁盘w
Twitter:@AmyGreen
2018年05月20日