毕业论文
职称论文发表
论文 论文发表
7彩论文网********论文与**********其次提供论文范文免费阅读
经济论文| 管理论文| 法学论文| 教学论文| 教育论文| 新闻传播| 财政税收| 财务管理| 市场营销| 物流论文| 教师论文| 保险论文| 心理学| 图书馆>
会计论文| 医学论文| 文学论文| 英语论文| 医院管理| 护理论文| 政治论文| 哲学论文| 医药论文| 计算机| 社会学| 艺术| 科学| 工程| 文化| MBA
关于试议C语言中的自增自减运算网站位置: >> 汉语言文学 >> 意大利文学论文 >> 浏览文章
试议C语言中的自增自减运算

论文导读:性使程序简洁,但同时可读性变差且易于发生错误,而且不同的编译系统对这样的程序运转所得结果也各不相同,以下主要以Turbo C和Visual C++ 6.0编译环境为例进行分析。  例如:  main()  {int i,p;  i=3;p=(i++)+(i++)+(i++);printf(“p=%d,i=%d\n”,p,i);  i=3;p=(++i)+(++i)+(++i);printf(“p=%d,i=%d\n”,p,i);  

浅析C语言中的自增自减运算摘 要:C语言应用中,自增自减运算符运用灵活、广泛且具有一定的使用技巧和难度,在编程过程中,往往是初学者最难理解和最容易出错的运算符。本文根据自增自减运算符的特点和两种使用形式,剖析自增自减运算符的功能和在不同编译环境下的运算规则,以便更好地为初学者学习和使用提供帮助。
  关键词:C语言;自增运算符;运算规则;自减运算符
  中图分类号:TP312.1
  C语言中自增自减运算符使用过于灵活多变、不易掌握,在编程时会出现一些令人意料不到的结果。于是对C语言初学者而言正确而又灵活地掌握好自增自减运算符的应用,是非常必要的。
  1 自增自减运算符的运算规则
  1.1 功能
  自增运算符即“++”,其功能使变量的值自增1。
  自减运算符即“--”,其功能使变量的值自减1。
  1.2 运算对象
  自增自减运算符都是单目运算符,只能对单个变量进行操作,而不能操作常量或表达式。自增自减运算符实质是在原来变量的基础上自增(减)1,最后的值还要重新赋给原变量。由于常量和表达式自身没有存储单元,自增(减)后的值无法保存,故都不能做自增自减运算。如:3++、(m+n)--等都是非法的。
  1.3 使用形式
  使用形式分为前缀形式和后缀形式两种。
  前缀形式:运算符在变量前,例如:++i,--i(在使用i之前,先使i的值加(减)1)。
  后缀形式:运算符在变量后,例如:i++,i--(在使用iC语言中的自增自减运算由优秀论文网站http://www.7ctime.com提供,助您写好论文.之后,使i的值加(减)1)。
  在这两种形式运算中,表达式的值不同:前缀形式运算后,表达式的值为运算变量值加(减)1。
  例如:
  int m,n=1;
  m=++n;(先把变量n的值加1使n=2,再把n的值赋给变量m,m=2,++n表达式的值为2)
  printf(“%d,%d”,n,m);输出结果为:2,2。
  后缀形式运算后,表达式的值仍为运算变量原值。
  例如:
  int m,n=1;
  m=n++;(先把变量n的值赋给变量m,m=1,再把变量n加1使n=2,n++表达式的值为1)
  printf(“%d,%d”,n,m);输出结果为:2,1。
  1.4 优先级与结合性
  属于单目运算符的自增自减运算符优先级为2级,运算时结合性为“自右至左”。
  例如:若要计算j=-i++;的值,则必须先计算出-i++表达式的值然后赋给变量j。那么在运算-i++表达式时,由于自增运算符“++”和负号运算符“-”的类型、优先级和结合方向都相同,所以按照C语言的规定,优先级相同的运算先后次序由结合方向来决定,故表达式执行-(i++)操作。若变量i=1,则运算时先用i的原值1加上负号赋给变量j,j=-1,然后i增值为2,最终结果为:j=-1,i=2。
  1.5 自增自减运算符连续多次出现在一个表达式中
  C语言的表达式中允许使用一个以上的赋值运算符、自增运算符和自减运算符。这种灵活性使程序简洁,但同时可读性变差且易于发生错误,而且不同的编译系统对这样的程序运转所得结果也各不相同,以下主要以Turbo C和Visual C++ 6.0编译环境为例进行分析。
  例如:
  main()
  {int i,p;
  i=3;p=(i++)+(i++)+(i++);printf(“p=%d,i=%d\n”,p,i);
  i=3;p=(++i)+(++i)+(++i);printf(“p=%d,i=%d\n”,p,i);
  }
  分析:在Turbo C和Visual C++ 6.0两种编译环境中表达式p=(i++)+(i++)+(i++)中的自增运算作为后缀式,其运算优先级低于求和运算。故先使用自增运算符****量i的值参与求和运算,即p=3+3+3=9,然后再对变量i进行3次自增运算,即i++;i++;i++;最后i的值为6。
  在Visual C++ 6.0环境下,表达式p=(++i)+(++i)+(++i)中的自增运算作为前缀式,其运算优先级高于求和运算。故先按照“自右至左”的结合性进行两次自增运算即i++;i++;,i的值变为5,获得满足第一个求和运算符两侧的操作数要求进行5+5求和运算,然后将和值(10)与变量i的第三次自增值(i=6)进行第二次求和运算(10+6)即p=((++i)+(++i))+(++i)=(5+5)+6=16,最后i的值为6。
  在Turbo C环境下,虽然表达式p=(++i)+(++i)+(++i)中自增运算也作为前缀式,但是其运算优先级高于全部求和运算,故按照“自右至左”的结合性先进行3次自增运算,即i++;i++;i++;,之后i的值变为6,最后再进行加法运算,即p=6+6+6=18。
  2 自增自减运算符的应用
  2.1 在关系表达式中的应用
  当自增自减运算符用于关系表达式,如果为前缀形式时,需要运算变量先加(减)1,然后才能进行比较;如果为后缀试议C语言中的自增自减运算形式时,则需要运算变量的表达式先参与比较,然后运算变量才加(减)1。
  例如:
  int x,m=10,n=5;
  x=(--m==n++)?--m:++n;
  语句执行之后,x,m,n的值分别为:7,9,7。
  语句x=(--m==n++)?--m:++n;在运算时是把条件表达式(--m==n++)?--m:++n的值赋给变量x,而要计算条件表达式(--m==n++)?--m:++n的值,应先判断条件表达式中--m==n++真假,而--m==n++是带有自增自减运算符的关系表达式,自增自减运算符的优先级高于关系运算符,因此计算--m==n++的值其实是求--m的值(变量m自减1(m=9)后的值)与n++的值(变量n的原值5)进行是否相等的比较(9==5的比较),之后n加1(n=6),最后比较结果为假值,将条件表达式(--m==n++)?--m:++n中的最后一个表达式++n的值(n自加1(6+1)为7)赋给x,x值为7。2.2 自增自减运算符在逻辑表达式中的应用
  当自增自减运算符在逻辑表达式中应用时,先根 全文地址:http://www.7ctime.com/ydlwxlw/lw6919.html
论文写作技巧论文写作技巧

关于试议C语言中的自增自减运算论文范文由7彩论文网整理编辑提供免费阅读硕士毕业论文