C++ Primer学习总结 第4章 表达式
C++ Primer学习总结 第4章 表达式
1、左值与右值
当一个对象被用作右值的时候,用的是对象的内容(值);当对象被用作的左值得时候,用的是对象的身份(地址)。
int a = 1;
int *p;
decltype(*p) b = a;
cout << b << endl;
a = 11;
cout << b << endl;//11
int a = 1;
decltype(a) b = a;
cout << b << endl;
a = 11;
cout << b << endl;//1
2、求值顺序
int x = f1()*f2();//求值顺序不定。
cout << ++i << i << endl;//求值顺序不定
//c++中只有 && || ?: , 四种运算符先后求值
3、一元正负号运算符作用于数值
4、模运算的正负值
取决于被模数
5、++ – 前置返回左值对象,后置返回右值对象
int u = 0,v = 0;
++v = 111;
//u++ = 111;
cout << v << endl;
6、后置递增运算符 优先级 高于解引用运算符
string s = "123";
auto bg = s.begin();
while(bg != s.end()){
cout << *bg++ << endl;
}
7、条件运算符满足右结合律
8、位运算建议只处理无符号 或者 整数,因为负号位处理和机器有关。
9、struct结构类的对象是需要对齐一个字的
struct{
int x;
char c;
}a;
int main()
{
cout << sizeof(a) << endl;//8
return 0;
}
10、sizeof运算符
对数组,求整个数组的大小。
对vector,string对象运算得到固定部分的大小。