第二章数据类型、运算符、表达式的介绍_第1页
第二章数据类型、运算符、表达式的介绍_第2页
第二章数据类型、运算符、表达式的介绍_第3页
第二章数据类型、运算符、表达式的介绍_第4页
第二章数据类型、运算符、表达式的介绍_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章数据类型、运算符、表达式的介绍

第三节:算术型运算符和表达式

大家好,咱们乂见面啦;

上次课呢我给大家介绍了一些C语言的基本知识。展示PPT文稿,包括如下:

(5)实型数据;

(6)字符型数据:

(7)字符串变量;

(8)变量赋初值;

(9)数值型数据之间的混合运算

这些知识大家已经掌握了,这些知识非常基本,但也非常顼碎,所以呢老师希望大家坚持住,

学习本身就是一件很苦的事,是和自己的耐心、韧性做斗争的过程,这个世界上真正的天才

并不多,绝大多数人都是象老师这样的普通人,普通人就得靠比别人更勤奋、更多的付出才

能做的更好。

言归正传,这节课我们学习如下几个内容:

(10)算数运算符和算数表达式

一:c语言的运算符

c语言运算符种类非常多,我们写C语言代码始终都会夹杂着各种各样的运算符,C语言的

运算符有如下几类,老师从网上找了一张图:

1.算术运算符(+-*/%)

2.关系运算符(><==>=<=!=)

3.逻辑运算符(!&&11)

4.位运算符(<<>>'1卜&)

5.赋值运算符(二及其扩展赋值运算符)

6.条件运算符(?:)

7.逗号运算符(,)

8.指针•运算符(*和&)

9.求字节数运算符(sizeof)

10.强制类型转换运算符((类型))

11.分量运算符(.->)

12.下标运算符([])

13.其他(如函数调用运算符())

大家看到这些感觉不太好了,这么多个分类,有13个,而且每个分类下面还包括好多个运

算符,老师的建议还是,不要去硬背,我们放在手边,需要的时候可以去查阅,随着大家手

动编码越来越多,这些运算符我们自然都会用到,到时候自然而然的就记住了。

二:算术运算符和算术表达式

a)基本的算术运算符上机演示

+:力口3+5

-:减5-2,2-5

*:乘3*9

/:除,请大家注意这个除号的写法5/3,两个整数相除,会舍弃小数部分。

%:取余,或者叫模运算符,该运算符的两侧都要求为整型数,7/4=3;

b)运算符优先级问题:先乘除,后加减,如果优先级相同,则按先算左边,后算右边的方式

处理(这叫从左到右结合,当然还有从右到左结合的,这个等遇到我们再看)。举例比如2+3*5,

再比如2+8-5;用printf语句演示。

那么比如

a=3+5是怎么计算的,涉及到了不同种类运算符优先级问题;下标列出了从最高到最低的

优先级,仅供查询用,不要死记硬背,演示()和=运算符

演示:(3+2)*8;

特别说明:当记不住优先级时,就用()来。

难为人的考试题:

a+=a*=a/=a-6==>a+=(a*=a/=a-6);==>a+=((a*=a)/=(a-6)),这就是闲的没事干的问题,

并且有人还据此说你的基础不好,其实这跟基础真没啥关系,只是有些人乐意不乐意背下来

而己,而且老师也只记得一些常用的,不会去硬背这些东西。

要求运尊

优先级运算符含义结合方向

对象的个数

()圆括号

[]下标运用符

1自九至右

->指向结构体成员运算符

•结构体成员运算符

1遗辑非运算符

按位取反运$7符

++自增运算符

自诚运算符

1

2负号运算符自右至左

(单目运算符)

(类型)类型转换运算符

♦指计运并符

&地址。运算符

sizeof氏度运算符

*乘法运算符

2

3/除法运葬符自左至右

(双目运算符)

%求余运算符

加法运算符2

4自左至右

减法运算符(双目运算符)

<<左移运算符2

5自左至右

>>石移运算符(双目运算符)

2

6<<=>>=关系运算符自左至右

(双日运算符)

要求运算

优先级运算符含义结合方向

对象的个数

等于运算符2

7门左至右

1_不等于运算符(双目运算符)

2

8&按位与运算符口左至右

(双目运算符)

2

9A按位k或汇算符fl左至右

(双口运算付》

2

101按位或运算符自左至右

(双目运算符)

2

11&&设料。运算符门左至石

(双口运算符)

2

1211逆料或运算符自左至不

(双目运算符)

3

13?:条件运算符H右至左

(三日运算符》

8♦S-S♦S

14/=%=>>=<<=赋值运算符2H七至左

&=A=1=

逗号运算符

15H左至右

(噢序求值运算符)

c)强制类型转换运算符:将一个表达式转换成所需要的类型

(double)a将a转换成double型,但不是a本身类型变化而是整个这个结果的类型发生

了变化。

(int)(x+y)将x+y的值转换成整型;

(float)(5%3)将5%3的值转换成float型

总结:其一般的形式为:

(类型名)(表达式名)

注意,表达式是用()括起来的,如果写成

(int)x+y那就只将x转换成整形,然后和y相加了,可以看上边的运算符优先级表看观察

此现象。

再次强调:强制类型转换时,得到•个所需要类型的中间变量,原来的类型没有发生变化,

比如看如下演示;

(int)x,有些书上强调不要写成int(x),其实如果你写成int(x),应该也是可以的。

演示:

floatx;

inti;

乂=3.6;〃可以写成36;

i=(int)x;〃如果不用强制转换一下,这里就会出现警告

printf("x=%f,i=%d”,x,i);

总结:两种类型转换

第一种是属于自动类型转换:

上节课我们讲“不同类型数值变量进行混合运算时,系统会尝试将他们的变量类型统一”,

大家还记得这个表:

double—flont

高|

long

unsigncd

低int—,char.short

这个属于运算时不需要用户指定,系统自动进行类型转浜的情况,比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论