C++ Primer学习总结 第4章 表达式

C++ Primer学习总结 第4章 表达式

1、左值与右值

当一个对象被用作右值的时候,用的是对象的内容(值);当对象被用作的左值得时候,用的是对象的身份(地址)。
C++ Primer学习总结 第4章 表达式

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、一元正负号运算符作用于数值

C++ Primer学习总结 第4章 表达式



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、条件运算符满足右结合律

C++ Primer学习总结 第4章 表达式


8、位运算建议只处理无符号 或者 整数,因为负号位处理和机器有关。



9、struct结构类的对象是需要对齐一个字的
struct{
	int x;
	char c;
}a;
int main() 
{
	cout << sizeof(a) << endl;//8
    return 0;
}



10、sizeof运算符

对数组,求整个数组的大小。

对vector,string对象运算得到固定部分的大小。

C++ Primer学习总结 第4章 表达式

C++ Primer学习总结 第4章 表达式