OK,我们继续学习任务三(算术运算符和算术表达式)
既然是“算术运算符和算术表达式”那么肯定有加减乘数运算了,那么,请大家先自己编写一个三位整数的的和并输出出来,
OK,相信大家很快就已经写好了,如果有人不会写,没关系,我先将代码呈现出来:
以上有两种写法,大家不要手懒,在编程界种,最忌讳手懒,我们要宁愿看不懂的抄代码,也不要一味的复制粘贴!
上述加减乘除自己抽时间都要尝试一下,特别是除号(/)看看得出的值是不是真正正确的!
接下来,我们要先了解一下“C语言运算符”
此图:来自百度百科
其他的我们不需要细讲,我们细讲的是自增(++)和自减(–),它们均为+1或-1
共有四种描述,例如:
i++ i–
++i –i
那么上面的四种描述都分别有什么区别呢?我们先把它们放到编译器里调试一下看看都有什么区别,
调试截图:
我们调试了调试,发现 i++ 与++i好像没有什么区别,得出的结果都是一样的,同样i–和–i也是这样,那为什么我前面非要说是四种描述方式呢?
让我们来见证奇迹吧!
奇迹截图:
对比上面两个截图,看看有什么新大陆没有?
接下来我来说一句话,可以帮你解决困扰,咳咳,开始了:“i++先使用,后赋值,++i先赋值,后使用”,大家自己可以停下来先参透一下!
倘若你还未理解上述,请先慢慢理解,不要着急,若仍不会,可以百度询问,你必须要学会如何正确使用百度!
下面我们来学习了解一下“不同类型的数据转换规则”“优先级”问题,如下图:
我们在运算不同类型的变量的运算时,不同类型的变量将会转换为标准类型,以便提高速度,且只能从低级转换为高级,否则可能会报错或者数据出错异常。
①若参与运算量的类型不同,则先转换成同一类型,然后进行运算
②转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算
a、若两种类型的字节数不同,转换成字节数高的类型
b、若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
③所有的浮点运算都是以双精度进行的,即使是两个float单精度量运算的表达式,也要先转换成double型,再作运算.
④char型和short型参与运算时,必须先转换成int型
⑤在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。
如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入
2.强制类型转换
强制类型转换一般格式如下:
(类型名)(表达式)
这种强制类型转换操作并不改变操作数本身{此段采集:唯一诺}
再补充一点,“i++”和“i–”优先级大于“++i”和“–i”
小结:
我们为了避免出现无法嗅觉的错误异常,可以使用取值范围比较大的数据类型,若你追求程序大小,那么你编写时一定要注意数据类型的取值范围。
C语言中只有#define形式的才是“常量”。用const定义出来的是“只读变量”!注意:是“变量”。const可以通过指针来进行改变!大家现在不能理解也是正常的,后面我们会提到。
有些内容想不起来了,,那先布置作业吧,
1.举一反三,将“A”通过运算变为“a”(要带上英文双引号哦!!!),并且输出到屏幕上!
2.试着算出下面代码的值:(提示,请参考ASCII码)
#include<stdio.h> int main() { char a='Z',b='s'; printf("Z+s-90=%c\n",a+b-90); return 0; }
#include<stdio.h> int main() { printf("%c%c%c",61,46,61); return 0; }
参考答案在下一页
评论抢沙发