Loading... # C++ 语法基础 ## iostream ```C++ using namespace std; ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ``` 在开`-O2`的情况下, 1. 关同步 2. 解tie 3. 不使用endl 这样`iostream`可以远远快于`cstdio`。 ```C++ using namespace std; cin >> x >> y; cout << x << y << '\n'; ``` `cin`管道向右,`cout`管道向左,两者都写在最左边。 ## 预处理命令 宏可以带参数,带参数的宏可以像函数一样使用: ```cpp #define sum(x, y) (x + y) ``` 但是注意计算时的括号,否则会引发歧义。 # 变量 ## 基本数据类型 | 类型 | 关键字 | | - | - | | 布尔型| bool | | 字符型| char | | 整型 | int | | 浮点型| float | | 双浮点型 | double | | 无类型 | void | ### int类型 可以用关键字进行修饰 | 类型名 | 位宽 | | --- | --- | | short int | 16 | | unsigned short int | 16 | | int | 32 | | unsigned int | 32 | | long int | 32 | | unsigned long int | 32 | | long long int | 64 | | unsigned long long int | 64 | <div class="tip tip-handsome inlineBlock info"> 注意:`long`和`int`是一样的!如果需要长长长,那么需要`long long`。 </div> ## 类型转换 ### 数值提升 数值提升时,值不变。(小范围到大范围) ### 数值转换 数值转换时,值可能改变。 - 位宽较大的浮点数转换为位宽较小的浮点数,会将该数舍入到目标类型下最接近的值。 - 浮点数转换为整数时,会舍弃浮点数的全部小数部分。 - 整数转换为浮点数时,会舍入到目标类型下最接近的值。 - 将其他类型转换为 bool 类型时,零值转换为 false,非零值转换为 true。 # 运算 ## 位运算符 | 运算符 | 功能 | | - | - | | ~ | 逐位非 | | & |(双目) 逐位与 | | \| | 逐位或 | | ^ | 逐位异或 | | << | 逐位左移 | | >> | 逐位右移 | 注:markdown中需要用`\|`来表示`|` 注:位运算符的优先级低于普通的算数运算符。 ## 自增自减运算符 `++i`:i+=1,返回i `i++`:存下i,再把i+=1,返回临时变量 ## = 与 == =为赋值符号,当赋非0时返回True,赋0时返回False ## 逗号运算符 逗号的作用是将一系列运算按顺序执行。 使用逗号运算符目的是把几个表达式放在一起。 整个逗号表达式的值为系列中最后一个表达式的值。 例: ```cpp for(i=1, j=0 ; i<100 && j <300; i++, j*=3) { } ``` ## 成员访问运算符 |运算符 | 功能 | | - | - | |[] | 数组下标 | |. | 对象成员 | |& | (单目) 取地址/获取引用 | |* | (单目) 间接寻址/解引用 | |-> | 指针成员 | # 流程控制语句 ## Switch ```cpp switch (选择句) { case 标签1: 主体1; break; case 标签2: 主体2; break; default: 主体3; } ``` 选择句和标签都必须为整数。 需要定义变量时,必须加花括号。 ## do while 先执行后判断。 # 数组 <div class="tip tip-handsome inlineBlock warning"> 数组声明后长度便不再改变。 </div> 数组只能逐值修改,不能整体赋值。(除非用内存操作) 大数组应该尽量定义为全局变量(静态区),局部变量可能爆栈(栈区)。 数组是一个(由编译器管理的)内存地址,角标为偏移量,允许越界访问,甚至允许访问负角标,但是可能产生非法后果。 <div class="tip tip-handsome inlineBlock info"> 在 C/C++ 中,直接使用数组名,得到的是数组的起始地址。 </div> # 心得 <div class="tip tip-handsome inlineBlock share"> 暑假的最后几天,熬夜学了一些东西,没想到是如此的快乐…… 希望能够持续下去。 </div> 最后修改:2021 年 09 月 03 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得这篇文章对你有用,请随意赞赏~