10/15

来源:互联网 发布:淘宝充值软件赚钱吗 编辑:程序博客网 时间:2024/05/18 02:48

数据转化的两种形势:

1.隐式转化:字节数少的遇到字节数多的,自动转化成字节数多的,  比如int类型遇到float类型,将自动转化为float类型。

                       发生赋值操作时,等号右边的数据类型会自动转 等号左边的数据类型,  如:int a = 1.0  得到的结果为1,float a = 1 得到的结果为1.000000.

2.强制转化:(int) 1.3 = 1   此时1.3发生了强制转化 转化为1)     


 


精度缺失:在多字节数据转化为少字节数据时,会发生精度缺失,

float类型有2个字节,16位组成,而char类型则只有一个字节,8位,所以float类型储存为char类型时,其补码前8位丢失,储存的数和原来的数有差别。

例如 -1 的源码为1000 0000 0000 0001,反码为1111 1111 1111 1110,补码为1111 1111 1111 1111截断后,则储存的数值为1111 1111 。



算术运算符:+  -  *  /  %

%为模运算  即为求余运算



查看内存的方式:

打断点,  调试,  记录地址,  按F10运行程序,  

int a = 1;

printf(%p,&a);   



自增自减运算

++a为先自增,后运算    a++为先运算,后自增,自减同理。



赋值运算符:=

=左边的叫做左值,左值只能是变量,不能为常量或者表达式

=右边的叫做右值。



复合赋值运算符:+=,  -=,  *=,  /=,  %=,

例如:a += 1  其实就是a = a + 1 ,其他复合赋值运算符同理


复合赋值运算的嵌套:自右向左结合

经典案例 :a += a -= a *= a /= a %= a*a;  结果为 a = 0

上面的案例展开后,其实是a = a %(a*a);

a = a / a ;

a = a * a ;

a = a - a ;

a = a + a ;


逗号表达式:整个表达式的值为最后一个逗号的表达式的值。

如:a = 2, a *= 3 , a += 4; 最后的结果为a=10


逻辑上的真,数值为1,假 ,数值为0.例如:

int  a =1, b = 2 ;

c=a<b;

printf(“%d",c);

得到的结果为1


原创粉丝点击