我是靠谱客的博主 沉默薯片,最近开发中收集的这篇文章主要介绍第三章(二)-----运算 与 赋值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

     运算:

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

                       先转为 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. 给变量赋初值

               

最后

以上就是沉默薯片为你收集整理的第三章(二)-----运算 与 赋值的全部内容,希望文章能够帮你解决第三章(二)-----运算 与 赋值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部