- 2
- 0
- 约 36页
- 2017-04-25 发布于四川
- 举报
04c运算符及表达式090221
第4章 运算符和表达式; C语言运算符之多, 在高级语言中是少见的。但运算符的多样性和表达式的灵活性对于一个C语言的初学者来说很可能会成为机关重重的陷阱。;4.1.1 C语言运算符的种类 ;4.1.2 C语言运算符的特性 ; 4.1.3 C语言表达式的特性 ; 在同一个算术表达式中,如果参与运算的两个运算对象的数据类型不一致时,系统将自动把其中的一个进行类型转换,使两个运算对象的类型一致后再进行运算。自动转换的规则是:按“短向长靠拢”的原则进行转换。所谓“短向长靠拢”是指:占用存储空间较短的数据对象向占用存储空间较长的数据对象转换。 ;4.2 基本运算;4.2.2 算术运算; 一个合法的C算术表达式在某些情况下并不能产生预期的结果,甚至会导致程序非正常终止。这些情况被称为算术异常。算术异常要归咎于算术的自然本质(比如除以0)或归咎于计算机的自然本质(比如溢出)。所谓溢出(Overflow),是指表达式的结果超出了被赋值对象的表示范围。因为计算机本身就是有限的,所以,任何数据类型的表示范围都是有限的。因此,当数值变得过大或过小,计算机都因为不能表示而产生溢出,前者称为上溢,后者称为下溢。上溢是指运算过程中的数据的绝对值大到机器无法表示,计算机认为该数是正(负)无穷大而中断程序运行的现象;下溢是指运算中的非零数据的绝对值小到计算机在规定的字长下无法将其表示成一个非零数,而将该数强制为零的现象。; /* 本程序测试整型数的上溢 */
#includestdio.h
int main()
{
int x = 10000;
printf(x = %d\n,x=x*x);
printf(x = %d\n,x=x*x);
}
程序输出为:
x = -7936
x = 0; /* 本程序测试实型数的上溢 */
#includestdio.h
int main()
{
float x = 100000.0;
printf(x = %g\n,x=x*x);
printf(x = %g\n,x=x*x);
printf(x = %g\n,x=x*x);
}
程序输出为:
x = 1e+10
x = 1e+20
Floating point error:Overflow.; 可见,整型数溢出和实型数溢出之间的差别。前者以错误的结果继续运行,后者一旦溢出就终止运行并报告错误。;4.4.3 关系运算; /* 本程序测试关系表达式数据对象的自动转换 */
int main(void)
{
char c=’A’;
int i=10,j=20;
float x=3e+2,y=1.88;
printf(%d\n,’B’-1c);
printf(%d\n,x+i=y+j);
};设有如下定义:
int a = 30, b = 20, c = 10;
对于关系表达式
a = b = c
读者只需运用小学的数学知识就能推断其逻辑关系是成立的,也就是说该表达式的结果应该等于1,但在C语言中,其结果是0,这个结果意味着上述表达式的逻辑关系不成立。 ;4.2.4 逻辑运算符;对于表达式:
exp1 exp2
exp1 || exp2
如果下列条件有一个满足:
(1)在逻辑与表达式中,exp1的计算结果为0;
(2)在逻辑或表达式中,exp1的计算结果为1
则整个表达式计算完毕,即exp2保证不会被计算。这个特性,我们称其为短路。; 例如,设有定义:
int a = 1,b = 2,c = 3;
在计算表达式
a b || (b=0) (c=0)
时,并不因为“”优先级高于“||”而先作“”运算。根据短路特性,它等价于:
a b || ((b=0) (c=0))
因此要特别注意这一短路特性。;4.2.5 自增和自减运算; 后缀++: ;假设我们有一个变量k的值为5:
y= ++k+10;
y= k++ +10;
y=--k +10;
y=k-- +10;
y=(k+=k++);
; 当一个变量是含有多个函数参数中的一部分时,不要将自增自减运算作用于这样的变量。;4.3 其它运算 ;4.3.3 条件运算;
您可能关注的文档
- 012女性有效沟通及团队建设的基本技巧.ppt
- 0102LOGO的算术及演奏功能.ppt
- 007第7章网络经济环境下的政府职能.ppt
- 01_1_1_0物质世界的客观存在.ppt
- 0103应用文的特点和其作用.ppt
- 01_会计电算化概述.ppt
- 01_命题逻辑_1.11.3.ppt
- 014_第7章控制器_1.ppt
- 01_2第一章第二节物质的量在化学实验中的应用.ppt
- 2012年高考生物专题复习提分课件-第十三讲新陈代谢的基本类型(大纲版).ppt
- 温州市城市中央绿轴封闭区规划道路北段(锦江路-温州大道段)及规划道路北段连接锦源路段市政道路工程环境影响报告书环评报告.doc
- 江北区湾头(JB05-02-22)地块项目环评报告.doc
- 宁波市河道管理中心宁波市区清水环通一期工程——屠家沿引水净化工程环评报告.docx
- 湖州南太湖新区长东未来社区路网工程环评报告.docx
- 浙江岩治气动工具股份有限公司年产100万套气动喷枪、50万套气钉枪技改项目环评报告.doc
- 杭州白马湖生态创意城管理委员会南滨路(萧山越王路-萧山杨堤)工程环境影响报告书.doc
- 海宁市洁源水务有限公司长水塘水源生态湿地水质提标工程环评报告.docx
- 国际务与流动性管理:零售银行优流动性管理模型.pdf
- NIJ IIIA高质量防盔,适用于事,PASGT M88 2000 ACH.pdf
- 人教版四年级上册语文《期中》测试卷(加答案).doc
最近下载
- 第一节_任丘碳酸盐岩油藏概念.doc
- PN8213 65w氮化镓充电器芯片可代换NCP1342.pdf VIP
- 横河(Yokogawa)Daqstation DX1000 DX1000N使用说明书(中文).pdf VIP
- 自考00015英语(二)高频词汇.pdf VIP
- 浙江省护理病历书写规范.ppt
- (高清版)B-T 20147.4-2023 色度学 第4部分:CIE 1976 L a b颜色空间.pdf VIP
- 2023年菏泽医学专科学校单招语文考试试题及答案解析.docx VIP
- 木工设备操作说明书.pdf VIP
- 船舶液压舵机.ppt VIP
- 预包装食品标签通则测试题及答案.docx VIP
原创力文档

文档评论(0)