赋值运算符和赋值表达式
对比取值范围图理解
赋值运算符:
int a; // 定义
a = 3; //赋初值
float bf; // float是单精度浮点型
bf = a;
//bf 的值为: 3.000...
char a = 90; // int占用4 byte , char 占用 1 byte ,其取值范围是-128~127
a = 900; // 数值溢出,不可预料
**// 赋值原则: 类型相同是最理想的。 如果类型不同,建议使用强制类型转化。当强制类型转换时,开发者必须自己明确知道溢出问题**
int a = 9, b = 10;
a = b;
short a;
b = 30000;
a = (short)b; // 强制类型转换的目标是确保编译器不出现警告。
int a;
int b,c;
b = 10000000;
c = 1000000;
a = b * c; //int型是保存不了这么多的,会溢出。
复合型赋值运算符:
包括 += , *= , %= , -= .
例如:
int a = 30;
a += 3; // a = a + 3;
int y = 8, x = 5;
x *= y + 8; // --> x *(y+8) = x
x = 7;
x %= 3 ; // x = x % 3
printf("%d",x);
int a,b,c;
a = 3;
a += (a -= (a*a));
// a += (a -= 9);
// a += (a= a - 9);
// a += (-6);
// a = a + (-6);
// a = -3;