天天看點

ca38a_demo_c++指派操作符

/*ca38a_demo指派操作符
左操作符必須是非const的左值
指派操作的右結合性
指派操作具有低優先級
謹防混淆相等操作符和指派操作符
複合指派操作符

*/
#include <iostream>

using namespace std;
int get_value();


int main()
{
	int a;
	a = 1;//指派
	cout << a << endl;
	
	int i, j, ival,jval;
	double d;
	d = i = 3.5;//指派操作的右結合性
	cout << d << "," << i << endl;
	i = d = 3.5;
	cout << d << "," << i << endl;
	string s1, s2;
	s1 = s2 = "OK";//指派操作的右結合性
	ival = jval = 0;//指派操作的右結合性
	i = 12;
	ival = 3.14159;//
	//cout << ival << endl;

	const int ci = i;
	//1024=i;//非法
	//i + j = ival;//非法
	//ci = ival;// const值不能改變。
	int ia[10];
	//ia = 0;
	ia[0] = 0;
	*ia = 1;//解引用操作
	int k = get_value();
	while (k != 35)
	{
		cout << "您輸入的是:" << k << endl;
		k = get_value();
	}

	return 0;
}
int get_value()
{
	int res;
	cout << "請輸入一個整數: ";
	cin >> res;
	return res;
}
           

//複合指派操作符

#include <iostream>

using namespace std;

int main()
{
	int i;
	cout << "請輸入一個整數: ";
	cin >> i;
	//小心:=和==
	if (i == 42)
	{
		cout << "您輸入的是42" << endl;
	}
	else
	{
		cout << "您輸入的不是42" << endl;
	}
	//getchar();
	//複合指派操作符
	int a, b;
	a = 1;
	b = 2;
	a = a + b;
	a += b;
	a = a - b;
	a -= b;
	a = a * b;
	a *= b;
	a = a / b;
	a /= b;
	a = a % b;
	a %= b;
	a = a << 2;//-------------
	a <<= 2;//-------------
	a = a >> 2;
	a >>= 2;
	a = a & b;
	a &= b;
	a = a | b; //位或
	a |= b;
	a = a ^ b;//^ ,位異或-------相同為0,否則為1
	a ^= b;

	system("pause");
	return 0;
}
           

繼續閱讀