表达式
Posted 2020r
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表达式相关的知识,希望对你有一定的参考价值。
1.
21 % -5; // machine-dependent: result is 1 or -4
21 / -5; // machine-dependent: result -4 or -5
2.
溢出
3.
bool 类型可转换为任何算术类型——bool 值
false 用 0 表示,而 true 则为 1
4.
位操作符操纵的整数的类型可以是有符号的也可以是无符号的。如果操作数
为负数,则位操作符如何处理其操作数的符号位依赖于机器
对于位操作符,由于系统不能确保如何处理其操作数的
符号位,所以强烈建议使用 unsigned 整型操作数。
5.
~位取反
^位异或
|位或
&位与
6.
7.
8.
( (cout << "hi") << " there" ) << endl;
在这个语句中, 操作数"hi"与第一个 << 符号结合, 其计算结果与第二个 <<
符号结合,第二个 << 符号操作后,其结果再与第三个 << 符号结合
9.
cout << 10 < 42; // error: 等同于(cout << 10) < 42;
<的优先级比关系操作符、赋值操作符和条件操作符优先级高
要加括号:cout << (10<42);
10.
“s2 = "OK";”的赋值结果是s2,即“OK”
所以s1 = s2 = "OK;"
是把OK赋给s2,将返回的s2赋给s1
11.
复制操作具有低优先级,优先级小于!=判断符,要加上括号
12.
13.
a = a(0) + a+1(1)
14.
++i 比 i++ 效率高,前置操作符只需加1后返回结果,而后置操作符需要先保存操作数原来的值,以便返回未加1前的值作为结果。
15.
*p++:输出p指向的数值,然后p自增。*对p的原值(为加1前的副本)进行解引用。
加上括号,结果一样:
*++p(奇怪的用法)
同理,加括号也一样
16.
你认为为什么 C++不叫做++C?
C++保留了C语言的原有内容,在此基础上增加其他特性,可以向下兼容C。
++C表示无法再使用C语言了。
17.
*(sp.same_isbn(item2)); // equivalent to *sp.same_isbn(item2);
18.
编写程序定义一个 vector 对象,其每个元素都是指向string 类型的指针,读取该 vector 对象,输出每个string 的内容及其相应的长度。
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 int main() 6 { 7 vector <string*> v; 8 string str; 9 while (cin >> str) 10 { 11 if (str =="exit")break; 12 string* sp = new string; 13 *sp = str; 14 v.push_back(sp); 15 } 16 vector<string*>::iterator it = v.begin(); 17 for (; it != v.end(); it++) 18 { 19 cout << **it << " size:" << (*it)->size() <<endl; 20 } 21 return 0; 22 }
19.
不合法:
以上是关于表达式的主要内容,如果未能解决你的问题,请参考以下文章