概述
运算:
运算中的强转 (不同类型数据间的混合运算 即先统一数据类型,再运算):
先转为 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. 给变量赋初值
最后
以上就是沉默薯片为你收集整理的第三章(二)-----运算 与 赋值的全部内容,希望文章能够帮你解决第三章(二)-----运算 与 赋值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复