第三章(二)-----运算 与 赋值

     运算:

                       运算中的强转 (不同类型数据间的混合运算  即先统一数据类型,再运算):

                       先转为 double型,再运算,结果都为 double型

                      (1)+,-,*,/,运算的两个数中有一个数为 float 或 double 型,系统会将所有 float型数据

                        都先转换为 double型,然后再进行运算,结果都为 double 型。

                      (2)如果 int 型与 float 或 double 型数据进行运算,先把 int 或 float 型转化为 double型

                       ,然后进行运算,结果都为 double 型。·

     赋值:

                       1. 复合赋值运算:在赋值符 '=' 之前加上其他运算符,可以构成复合运算符。

下面三种写法是等价的

x %= y+3 ;
x %= (y+3) ;
x =x%(y+3) ;

                       2. 只有变量才能是左值:(赋值符的使用)       

1. a=(b=3*4) ;
将 3*4 的值先赋给,然后 变量b 的值赋给 a
2. (a=b)=3*4 ;
   a=(a=b)=3*4 ;
在 visual c++中报错 “error:left operand must be value”,左侧操作数必须是左值,
即 “赋值表达式不能是左值”
3. int a=b=c=3 ;
报错“error” ,因为 b 和 c 没有在程序中声明
“b” was not declared in this scope
“c” was not declared in this scope

4. a+=a-=a*a ;
正确:复合赋值运算
5.int a; int b=3;
printf("%d", a=b);
正确:在printf函数中完成了赋值和输出的功能

   注意 赋值表达式 也可 嵌套于 其他语句当中:

if( (a=b)>0 ) maxn=a ;

 

                       3. 赋值时的强转(实型数据之间 以及整型与实型之间的赋值,是先转换类型,后赋值)

(1)将浮点型数据(单双精度)赋给 整型变量时 舍弃小数点部分,然后赋予整型变量
(2)将整型数据赋给单双精度变量,数值不变,但以浮点数形式存储到变量中
(3)将一个 double型数据赋给 float变量时,先将 double型数据 转化为 float,再赋值
     注意赋给 float变量 的double数据大小不能超过float型变量的数据范围
(4)将一个 float型数据赋给 double变量时,先将 float型数据 转化为 double,再赋值
(5)整型中,占字节数多的整型数据赋给一个占字节少的整型变量 或 字符型变量 只将其低字节原封不动的
     赋给占字节数少的变量(即发生 截断) 
例子:
int i=289;                        int a=32767;
char c='a';                       short b;
c=i;                              b=a+1;
i=289 二进制表示: 00000001 00100001     a=32767  00000000 00000000 01111111 11111111
送给 c 后 发生截断:        00100001      送给 b 后发生截断:         10000000 00000000
     c=33                                    b=-32768

                       4. 给变量赋初值

               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值