- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言自增自减运算符应用
C语言自增自减运算符的应用
摘 要: Ca语言的一个主要特点是运算符丰富、范围广。灵活地使用各种运算符可以实现在其它高级语言中难以实现的运算。本文主要对C语言中自增、自减两个运算符的使用作详细说明。
关键词: C语言 自增、自减运算符 功能 运算规则
C语言中的运算符非常丰富,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。在这些运算符中,最难理解、最易出错也最为灵活的便是自增、自减运算符。下面我详细归纳了使用自增、自减运算符时的注意事项,并结合运算符的优先级和其本身的特点,对Turbo C环境下的自增、自减运算符的功能与运算规则加以分析。
1.自增、自减运算符的作用及形式
C语言中的自增运算符“++”和自减运算符“--”的作用是使运算对象的值增1或减1,如i++,相当于i=i+1;i--,相当于i=i-1。因此,自增、自减运算本身也是一种赋值运算,其运算对象只要是标准类型的变量,不论是字符型、整型、实型或是枚举型都可作为运算对象,而由于常量和表达式不占存储单元,因此不能使用常量或表达式作运算对象,如1++、(a+b)--等都是非法的。
自增、自减运算符有两种使用形式:前置式(++i,--i)和后置式(i++,i--)。前置式中先使i加减1,再使用i,后置式中先使用i,再使i加减1。
2.自增、自减运算符的应用
很多C语言教材和参考书都说明自增、自减运算符具有“从右向左”的结合性,并且由于操作数只有一个,属于单目操作,因此优先级也高于其它双目运算符和三目运算符的优先级。但在实际的编程中我们发现,自增、自减运算符的运算规则在不同的表达式中也不尽相同。下面我们就从自增、自减运算符的以下几点应用来进行分析。
2.1自增、自减运算符在赋值表达式中的应用。
例1:main()
{int i=1,j=2,k;
k=i+++j;
printf(k=%d,i=%d,j=%d\n,k,i,j);
}
这里的i+++j是理解成i+(++j),还是理解成(i++)+j呢?Turbo C编译处理将自左向右解释为(i++)+j,而不是i+(++j),因此程序运行结果为:k=3,i=2,j=2。
2.2自增、自减运算符在条件表达式中的应用。
例:main()
{int i=1,j=3,k;
k=ij?++i:++j;
printf(k=%d,i=%d,j=%d\n,k,i,j);
}
由于程序中的“ij?++i:++j”是一个条件表达式,虽然自增运算符的优先级比条件运算符的优先级高,但在程序运行时,先对i是否大于j进行判断,由于(ij)为假,因此只需计算++j,j自增后为4,而对于++i并不计算,i仍为1,程序的运行结果为:k=4,i=1,j=4。
2.3自增、自减运算符在逻辑表达式中的应用。
例:main()
{int i=0,j=1,k=2,x;
x=++i||++j++k;
printf(x=%d,i=%d,j=%d,k=%d\n,x,i,j,k);
}
程序中的赋值语句“x=++i||++j++k;”在执行时,虽然里边包含三个自增运算:++i、++j和++k,而自增运算符的优先级又高于逻辑运算符的优先级,但在Turbo C中实际只执行了++i,对++j和++k并没有执行。这是因为在C语言中针对||运算符和运算符在使用的时候有一个规定:在一个复杂的逻辑表达式中,若前面子表达式的值能够决定整个表达式的值,则后面的子表达式不需计算。在表达式x=++i||++j++k中,++i的值为1,它与后面的子表达式++j++k进行||运算,它能够决定整个表达式的值,后面的++j和++k无需执行,因此程序的运行结果为:x=1,i=1,j=1,k=2。
2.4自增、自减运算符和其它单目运算符的应用。
例:main()
{int i=1,j;
j=-i++;
printf(%d,%d\n,i,j);
}
程序中对于同一个运算对象i而言,-和++都是单目运算符,优先级相同,那么到底是先运算-i呢,还是先运算i++。由于单目运算符具有从右向左的结合性,所以i先于右边的运算符++结合,即先计算i++,在计算-i,表达式等价于-(i++)。程序运行结果为:2,-1。
2.5自增、自减运算符在函数中的应用。
例:main()
{int i=3;
printf(%d,%d\n,i,i++);
}
在调用函数时,对
您可能关注的文档
- 2007年浙江省高考作文几种猜想.doc
- 2007年浙江省高考作文四大预言.doc
- 2007年湖南高考英语单选题五大特点.doc
- 2008,我人生风景画册.doc
- 2008年中考联系社会生活化学试题赏析.doc
- 2007年重庆高考文科综合试题特点及2008年高三复习策略.doc
- 2008年全国初中数学竞赛(浙江赛区)初赛试题第17题4种解答.doc
- 2008年关注时势中考数学试题例析.doc
- 2008年北京奥运会审计工作应注意问题.doc
- 2008年南京市中考作文题《寻》导写及佳作展评.doc
- 主题课程整理大班上.doc
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学语文四年级下册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学二年级上册数学期末综合试卷精选3套(含答案解析).docx
- 2026人教版小学语文四年级上册期末综合试卷3套(含答案解析).docx
- 2026人教版小学二年级下册数学期末综合试卷3套(打印版含答案解析).docx
- 2026年地理信息行业年终总结汇报PPT.pptx
- 板块四第二十一单元封建时代的欧洲和亚洲 中考历史一轮复习.pptx
- 中考历史一轮复习:板块四第二十单元古代亚、非、欧文明+课件.pptx
- 第二次工业革命和近代科学文化中考历史一轮复习.pptx
原创力文档


文档评论(0)