今天主要学习了变量赋值,混合运算,混合赋值
一·变量赋值
1.任何表达式都有其数据类型
int i = 10; 初始化 效率低 i = 10; 赋值 效率高
编译器只做类型检查
2.求余运算
a. 求余运算符要求%两边都与整型相兼容。
b.符号只与左操作数有关,与右操作数无关。
c.结果小于右操作数。
3.临时变量(匿名变量):临时开辟一个储存空间,将表达结果以16进制放进去。
4.
++i : 先加再用 i++ : 先用在加(临时变量)
int i = 2 ++i printf:3 int i = 2 i++ printf:2
单纯希望某值自增首选++i
5.
左值(Loactable value):字符,可取地址
右值(Read value):数字,不可取地址
区分左值和右值,终究还是要看能否取地址。
...........................................................................................................................................................
二·混合运算
1.显式转换(临时转换)(类型)
例:
int main()
{
//显式类型转换
float a = 10.55f;
float b = 13.14f;
float c = (int)a + (int)b;
printf("%f\n",c);
return 0;
}
2.隐式转换
例:
int a = 20;
float b = 5.23f;
int c = a + b;
上面的代码中,有两个不同的数据类型变量,在进行 int c = a + b; 表达式运算的时候,会有一个隐式转换的过程。因为int 类型比 float类型的精度低,所以编译器会先把变量a隐式转换为float类型的数据,然后再把两个float类型的a和b进行相加。
注意:强制类型转换可能会导致信息丢失(右值)
...........................................................................................................................................................
三·混合赋值
1.int = double, 小数部分截断
2. short = int 低字节拷贝,高字节删掉(高位截断)
3. int i ; 短数据类型向长数据类型赋值时,短数据类型为负补1,为正补0
short s = -12345; (符号位扩展)由右操作数符号决定
i = s ; (补1)
4. int i ;
unsigned short s = -1;
i = s ; (补0)
5.逗号运算符只保留第一位的运算结果,打括号后只保留最右边的运算结果。
在printf()中逗号不是运算符,表示分隔符。
...........................................................................................................................................................
今天的学习就到这了,明天见。