c++primer笔记
加入光荣的进化吧
位运算符
- 写的是啥玩意。。
sizeof运算符
- 返回一条表达式或一个类型名字所占的字节数。
- 满足右结合律
- 返回值是一个size_t类型。
- size并不计算器运算对象的值
- eg sizeof p ; 表达式从右向左组合,先 *p 但是size并不会计算 p的值, 所以该语句无意义。
- 对数组执行sizeof运算会得到整个数组所占空间的大小。,等价于对数组中所有元素各执行一次sizeof,并不会把数组转换成指针。
- 可以用数组的大小除以单个元素的大小得到数组中元素的个数。
- int num= sizeof(ia)/sizeof( *ia) ///*ia 指的是数组首元素
- 对string或vector对象执行sizeof运算==只返回该类型固定部分的大小==?!
第五章! 语句
简单语句
- 使用空语句时应加上注释,使读代码的人知道该语句是有意省略的
- ==复合语句==是指用花括号括起来的语句, 也被称为 ==块==。 一个块就是一个作用域。
- switch语句
- 一定不要省略case分支最后的break语句。 如果没写break,最好加一段注释说明程序的逻辑。
- switch语句其实就是跳转到所标识的地方(如 case 1, switch(1)就是跳转到该处) 如果没有break 执行完case1的内容后 会继续执行case2的程序。。。
- default: 如果没有case符合情况,就执行default的内容。
- 范围for
vector<int> v={0,1,2,3,4,5,6,7,8,9};
for(auto &r : v) //对于v中每一个元素
r*=2;
相当于↓:
for(auto beg= v.begin(),end= v.end(); beg!=end; ++beg){
auto &r=*beg;
r *=2;
}