版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言的运算符共有13类45个运算符
1.算术运算符
+-*/%++--2.关系运算符>>=<<===!=3.逻辑运算符!&||4.位运算符<<>>~|^&5.赋值类运算符=及自反赋值运算符
6.条件运算符?:7.逗号运算符,
8.指针及求地址运算符*&9.求存储单元字节数运算符sizeof10.类型转换运算符(类型)11.结构体成员运算符.
->12.下标运算符[]13.其他运算符如函数调用运算符()等2.4运算符与表达式2.4.1C语言运算符算术运算符与算术表达式C语言中基本的算术运算符共有5个,分别为:
+(加),-(减),*(乘),/(除),%(取模,或称求余)2.4运算符与表达式运算符名称表达式举例运算结果+正号运算符+55的原值为5-负号运算符-55的负值为-5+加法运算符5+25与2的和为7-减法运算符5-25与2的差为3*乘法运算符5*25与2的乘积为10/除法运算符5/25与2的商为2%取余运算符5%25除以2的余数为1基本算术运算符基本算术表达式:
基本算术运算符、括号以及操作对象组成的符合C语言语法规则的表达式.优先级:(*、/、%)同级较高,(+、-)同级较低结合方向:算术运算符的结合方向是从左至右。
2.4运算符与表达式【例2-12】运算符“/”和“%”的用法。程序如下:main(){inta,b;floatc;a=5/3;c=5/3.0;b=5%3;/*注意运算符%要求操作数必须为整型*/printf("a=%d,c=%f,b=%d",a,c,b);}运行结果:a=1,c=1.666667,b=2程序分析:(1)运算符“/”的操作数若全部为整数,则结果的小数部分将被自动舍掉,运算结果取整,所以5/3的结果是1,由于语句“c=5/3.0;”中操作数3.0是实型,所以结果按实际运算得出1.666667,故c=1.666667。(2)语句“c=5%3;”中,一定注意“%”是求模/余运算,它要求操作数必须是整型。>
自增运算符“++”和自减运算符“--”都是一元运算符,作用是使操作数的值加1或减1。如:i++
相当于i=i+1
--i
相当于i=i-1
注意:"++"和"--"运算符的操作数只能是变量,不能是常量、函数或表达式。如2++、(a+b)++都是错误的表达式。
自增、自减运算符2.4运算符与表达式设已作声明:inti=6,a;自增、自减运算符类型表达式计算方法结果前缀自增a=++ii=i+1a=ii的值为7a的值为7后缀自增a=i++a=ii=i+1i的值为7a的值为6前缀自减a=--ii=i-1a=ii的值为5a的值为5后缀自减a=i--a=ii=i-1i的值为5a的值为62.4运算符与表达式【例2-13】自增与自减的使用方法。程序如下:main(){inta,b,c,d,e,f;a=b=c=d=10;a++;++b;c--;--d;printf(“a=%db=%dc=%dd=%d\n”,a,b,c,d);e=a++;f=++b;/*认真分析e、f的结果是否相同*/printf("a=%db=%de=%df=%d",a,b,e,f);}运行结果:a=11b=11c=9d=9a=12b=12e=11f=12>运算符结合性优先级()从左向右高低++、--、+(正号)、-(负号)从右向左*、/从左向右+(加号)、-(减号)从左向右算术运算符的优先级算术表达式计算实例:设有变量声明floata=3.0;intb=2;计算表达式:2+sqrt(1.0+a)*b++/2的值。【思考】计算结束后b的值是多少?2.4运算符与表达式C语言中有3种形式的数据类型转换:自动类型转换赋值转换强制类型转换
混合运算及数据类型转换2.4运算符与表达式高doublefloatlongchar,shortunsigned低自动类型转换规则int2.4运算符与表达式赋值运算符
C语言中赋值运算符为“=”,它的一般形式为:
变量=表达式eg:a=8;sum=a+b;
注意:赋值运算符左边只能是变量,不能是常量或表达式,如2=a、a+b=c都是错误的。2.4.5赋值运算符和赋值表达式赋值运算符具有右结合性
a=b=6
等价于a=(b=6)
【问题】a=b=6+2的值是多少?2.4运算符与表达式复合赋值运算符
C语言允许在赋值运算符“=”之前加上算术运算符或位运算符以构成复合的赋值运算符。有:
+=-=*=/=%=<<=>>=&=^=|=2.4运算符与表达式设已作如下声明:intx=7;运算符表达式举例运算规则表达式的值+=x+=3x=x+310-=x-=3x=x-34*=x*=3x=x*321/=x/=3x=x/32%=x%=3x=x%31【问题】x*=y+5是等价于x=x*y+5还是x=x*(y+5)?2.4运算符与表达式/*案例*/分析下面程序的运行结果#include"stdio.h"voidmain(){ inta;a=5; a+=a-=a+a;printf("a=%d\n",a);}2.4运算符与表达式作用形式:
(类型)(表达式)将表达式的值转换成相应类型例如:(double)a(int)(x+y)(float)5/3优先级:同所有单目运算符,高于基本算术运算符。强制类型转换(显式转换)运算符2.4运算符与表达式main(){floatx=3.6;printf("%d,",(int)x);printf("%f\n",x);}由于求余(取模)运算只能针对整型数据,因此经常用强制类型转换的办法将一个实型量(变量或常量)变换成整型,然后才能进行取模运算,例如:(int)5.5%3。2.4运算符与表达式【思考】若有intb=7;floata=2.5,c=7.5;求表达式a+(b/2*(int)(a+c)/2)%4的值。2.4运算符与表达式逗号运算符,
用逗号运算符可以将两个表达式连接起来。
eg:2+3,2+5逗号表达式其一般形式为:
表达式1,表达式2,…,表达式n
求值过程:先求表达式1的值,再求表达式2的值,…,最后求表达式n的值。表达式n的值就是整个逗号表达式的值。2.4运算符与表达式优先级和结合性
优先级:逗号运算符是所有运算符中级别最低的.
结合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖北黄石市卫生健康委员会招聘政府雇员1人考试参考题库及答案详解
- 第14章 工程项目智慧建造管理
- 2026河北雄安新区新建片区学校第二批招聘9人笔试模拟试题及答案详解
- 2026江西省交投数智科技有限公司招聘8人(第二批)考试参考题库及答案详解
- 2026辽宁大连理工大学化工学院马红卫团队科研助理招聘1人(自聘)考试参考题库及答案详解
- 2026年6月天深圳市大鹏新区机关事务管理中心招聘编外人员2人考试参考题库及答案详解
- 2026浙江杭州市湘湖公证处面向社会招聘3人笔试模拟试题及答案详解
- 2026山东东营市教师招聘东营市化工学校招聘7人考试模拟试题及答案详解
- 2026河北张家口桥东区人力资源和社会保障局征集青年就业见习岗位考试模拟试题及答案详解
- 2026中核四0四招聘高层次人才和急需紧缺人才招聘8人笔试参考题库及答案详解
- 口语交际:倾听
- 导线三角高程计算表(表内自带计算公式)
- 清明古诗欣赏课件
- 电路基础实验北大未名BBS北京大学教学课件
- 创新理论我来讲演讲稿2000字
- 2023广东惠州市惠城区桥西街道办事处招聘治安队员、党建联络员、社区“两委”班子储备人选考试通告考试备考试题及答案解析
- 钢铰线应力松弛率试验计算表
- 大学生心理健康教育(第3版)PPT全套完整教学课件
- YY/T 1095-2015肌电生物反馈仪
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- 现代通俗小说与-张恨水课件
评论
0/150
提交评论