《C++ Primer》读书笔记(4.2,4.4,4.5,4.6)
来源:互联网 发布:越南进出口数据 编辑:程序博客网 时间:2024/06/05 04:37
关于%
取模[modulus]或求余[remainder]操作符
21 % -5; // 机器相关 : 结果为 -1 或 1
如果有一个 或两个 操作数为负 余数的符号则取决于机器 因此 移植性无法保证
elem_cnt = elem_cnt + (*iter < some_value)*iter < some _value 的布尔值 将提升为 1或 0
int ia[ array_size ] = { 0, 1, 2, 2, 3, 5, 8, 13 }; int *pia = ia;是非法的 尽管ia 是个左值 但是数组对象本身不能被赋值 只有它包含的元素才能被赋值 as没有这个限制
递增和递减操作符
递增 ++ 和递减 -- 操作符为对象加1 或减1 操作提供了方便简短的表示
ivec[ ix_vec++ ] = ia[ ix_ia-- ];在用ix_vec 的当前值索引ivec 之后 将ix_vec递增1
ivec[ ++ix_vec ] = ia[ --ix_ia ];在ix_vec 的值被用来索引ivec 之前 它先被递增变成1
条件操作符
cout << "The larger value of "<< i << " and " << j << " is "<< ( i > j << i : j ) << endl;( i > j << i : j )这里的<<就相当于a?b:c的?
sizeof 操作符
siseof 操作符的作用是返回一个对象或类型名的字节长度 它有以下三种形式
sizeof (type name ); sizeof ( object ); sizeof object;
返回值的类型是size_t 这是一种与机器相关的typedef 定义 我们可以在cstddef 头文件中找到它的定义 下面的例子使用了sizeof 的两种格式
#include <cstddef> int ia[] = { 0, 1, 2 }; // sizeof返回整个数组的大小 size_t array_size = sizeof ia; // sizeof返回 int类型的大小 size_t element_size = array_size / sizeof( int );当sizeof 操作符应用在数组上时 例如上面例子中的ia 它返回整个数组的字节长度 而不是第一个元素的长度 也不是ia 包含的元素的个数
#include <string> #include <iostream> #include <cstddef> int main() { size_t ia; ia = sizeof( ia ); // ok ia = sizeof ia; // ok // ia = sizeof int; // 错误 ia = sizeof( int ); // ok int *pi = new int[ 12 ]; cout << "pi: " << sizeof( pi ) << " *pi: " << sizeof( *pi ) << endl; // 一个 string的大小与它所指的字符串的长度无关 string st1( "foobar" ); string st2( "a mighty oak" ); string *ps = &st1; cout << "st1: " << sizeof( st1 ) << " st2: " << sizeof( st2 ) << " ps: " << sizeof( ps ) << " *ps: " << sizeof( *ps ) << endl; cout << "short :\t" << sizeof(short) << endl; cout << "short* :\t"<< sizeof(short*) << endl; cout << "short& :\t"<< sizeof(short&) << endl; cout << "short[3] :\t" << sizeof(short[3]) << endl; }编译并运行它 产生如下结果
pi: 4 *pi: 4
st1: 12 st2: 12 ps: 4 *ps: 12
short : 2
short* : 4
short& : 2
short[3] : 6
- 《C++ Primer》读书笔记(4.2,4.4,4.5,4.6)
- C-PRIMER PLUS读书笔记
- C-PRIMER PLUS读书笔记
- C++Primer读书笔记(一)
- C Primer Plus 读书笔记
- C++Primer读书笔记(二)
- 写写C++Primer读书笔记
- C primer 读书笔记1
- C++Primer读书笔记
- C++Primer读书笔记 Al
- C++primer读书笔记
- c primer读书笔记 第一章
- C++primer读书笔记5
- c primer读书笔记
- 《c++primer》 读书笔记
- c++primer读书笔记
- 《C++Primer》读书笔记(3)
- 《C++Primer》读书笔记(4)
- IpAddressCtrl使用心得
- check_mk 页面错误处理方法
- 安装Android Studio启动不了的原因
- Java中ZIP压缩与解压--中文文件名乱码解决办法
- 字符串匹配算法总结
- 《C++ Primer》读书笔记(4.2,4.4,4.5,4.6)
- ICE Manual(Documentation for Ice 3.5)---The Ice Protocol(与IIOP对比)
- JAVA多态示例
- SQL Server with 的简单用法
- 2013省赛总结
- JQuery的extend扩展详解
- matlab中位运算
- hdu 1850 尼姆博弈
- ffmpeg 中available decoders