今天学习内容现在分享给大家;
第一先说说赋值
什么是赋值 ?
( 将赋值符右边表达式的值赋给赋值符左边的一个变量。)记住不能变换位置。
那赋值符号是什么? 就是我们平时所说的“=”号。
在赋值中我们应该注意数据类型 (赋值运算符的数据类型若不一致,则要进行类型转换。)
例如int a; a=2.3; a的值为2。
(将实型数据赋给整型变量时,舍弃实数的小数部分。)
将整型数据赋给实型变量时,数值不变。
例如float f ; f=23; (先23→23.00000 再存储在f 中)
double d; d=23; (先23→23.000000000000000再存储在d中);
将字符数据赋给整型变量时,将字符数据放到整型变量低8位中
两种情况:若字符最高位为1,整型变量的高8位置1,否则高8位置0。
若把字符处理为无符号的量,整型变量的高8位置0。
怎么理解这两种情况 比如一个字符 他的二进制数为01010111 那么它储存在整型变量中为 00000000 01010111
如果是这样 int c;char i; c=i i='/376'那么其二进制为1 1 11 11 10 那么储存为11111111 11111110 所以i=-2
(将整型数据赋给长整型变量时,将整型数据放入长整型变量的低16位,若整型数为负数,长整型变量的高16位置1,否则长整型变量的高16位置0。)
将长整型数据赋给整型变量时,取长整型数据低16位。 应注意数值的范围,超出则数据出错
例如:main()
{ unsigned int a; b 1 11111111 11111111
int b=-1;
a=b; a为无符号的整形 a ( 1111111111111111)2=65535
printf( "a=%u“ ,a);
}
a=65535
复合的赋值运算符:(共十个)
+= , -= , *= , /= , %= , 位运算 <<= , >>= , &= , ^= , |= 先不讲
a+=3 等价于 a=a+3
x*=y+8 等价于 x=x*(y+8)
x%=3 等价于 x=x%3
x*=y+1; ( 等价与 x=x*(y+1);)
<、<=、>、>=、(优先级高 同级) ==、!=(优先级低 同级)
关系运算符的结合率为:“自左而右”。
c>a+b 等效于 c>(a+b)
a>b!=c 等效于 (a>b)!=c
a==b<c 等效于 a==(b<c)
a=b>c 等效于 a=(b>c)
关系表达式:
由关系运算符和操作数组成的表达式称为关系表达式。关系表达式的值是一个逻辑型的值,即只有两个值(真和假)。C语言是用1作为真,用0作为假。但是进行运算时,非0即认为真,0才认为假。而表达式的结果为真时,给出真值1。为假时,给出假值0。
例如:有int x=2,y=3,z=5;
则:x>y 结果为0。
z>=y 结果为1。
z==y 结果为0。
如果a=3 b=2 c=1
f=a>b>c 这是错的 结果为0为什么? 因为不能连续比较