c++/c 学习笔记——基础(2)
来源:互联网 发布:jre 8u45 windows x64 编辑:程序博客网 时间:2024/05/18 02:38
- 表达式
- 算术运算符。需要注意的是%运算符,c11以后将其统一,即若m%n=d,则d的符号与m相同。n的符号不影响结果,可忽略。
- 逻辑运算符。逻辑与和逻辑或运算符的顺序为从左至右,其采用短路运算,即若左边的表达式可得出最后的结果,则右边的表达式便不会再计算。
- 赋值运算符。赋值运算符满足右结合律,且优先级较低。
- 递增、递减运算符。尽量使用前置,开销较小。另,对于存在递增、递减运算的复合表达式中,求值顺序未定义。如:
#include <iostream>#include <vector>#include <cctype>using namespace std;//vs 报错,gcc 可以通过。int main() {vector<char> s = { 'a', 'b', 'c', 'd' };vector<char>::iterator beg = s.begin();while (beg != s.end() && !isspace(*beg)){*beg = toupper(*beg++);}for (auto i : s){cout << i << endl;}return 0;}
这会产生歧义的。 - 条件运算符。?:,优先级比较低,特别要注意在其比<<优先级低,所在在输入输出等复合操作中请添加();
- 移位运算符。满足左结合律,其已被c++重载。用于IO,所以在IO中,要关注一点,关于其左结合律的使用。
- sizeof运算符。其运算对象有两种情况 , 一是sizeof(expr) ,另一是sizeof expr。另对数组扫行sizeof 会返回整个数组的大小,对指针,仅会返回该指针所占的大小,对指针的解引用,也仅返回所指对象的大小,对引用的,会返回所引用对象的大小。
- 逗号运算符,按从左到右。
- 类型转换
- 若不同数值类型参加运算,一个基本规律,保留更多的精度,从此可以得知,转换方向向更大类型靠拢。所以bool->char->short->int->long->long long;int->float->double
- 无符号数与有符号数,统一转到无符号数
- 数组除decltype,取地址符,sizeof及typeid等运算时不转换外,其余大部分情况会转换,最著名的便应该是函数的数组参数。
- 指针的转换。指向任意非常的指针都可以转为void*,指向任意对象的指针都可以转为const void*,子类可以转为父类的指针。
- 显示转换,static_cast<>,可以把任意非底层const进行转换的,顶层是可以的。const_cast<>只是针对底层的,去除掉const属性。reinterpret_cast和硬件实现相关,dynamic_cast支持动态时类型实别。
- 基本 语句
- 悬垂if,使用{}
- switch中内部变量定义,小问题要注意,若为某个分支定义一个变量,置于{}中。
- 范围for, 这个好像没什么要说的。
- try{}catch{} c++中的异常处理另说。语法上没什么要说的。
0 0
- c++/c 学习笔记——基础(2)
- 学习笔记—C语言基础篇
- 学习笔记:C程序基础(2)
- C++&C学习笔记(一)(基础)
- Linux C学习笔记——C语言基础
- IOS学习笔记——object-C基础 (一)
- IOS学习笔记——object-C基础 (二)
- iOS学习笔记(2) - Objective-C基础
- 学习笔记:C程序基础(1)
- 学习笔记:C程序基础(3)
- 学习笔记(C基础+进阶)
- 学习笔记(C基础+进阶)
- C++/GDI+ 学习笔记(三)——基础
- C++/GDI+ 学习笔记(三)——基础
- C++/GDI+ 学习笔记(三)——基础
- Objective-c学习笔记—— 基础内容
- C语言基础——学习笔记整理3
- 黑马程序员——IOS学习笔记(Object-c基础)
- TCP:传输控制协议简单讲解(八)
- vim配置之map等命令
- 用D语言解面试题5
- 数据库操作--触发器
- eclipse下配置tomcat、修改字体、为什么得运行两次才能实现新做的改动的问题
- c++/c 学习笔记——基础(2)
- DNS欺骗方法总结
- F-Logo Turtle codeforces
- null字段作为where条件 的问题
- 冬令营第二周周报
- pptpd安装配置
- 今天参加了球友会的k歌聚餐活动, 好开心!
- maven安装jar包到本地maven库
- Maven+Nexus私服搭建