++-- 运算符号的说明 .doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
--运算符号的说明

l 运算符的优先级:C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。 l 运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。 3. 强制类型转换运算符 其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。 例如: (float) a 把a转换为实型 (int)(x+y) 把x+y的结果转换为整型 4. 自增、自减运算符 自增1,自减1运算符:自增1运算符记为“++”,其功能是使变量的值自增1。 自减1运算符记为“--”,其功能是使变量值自减1。 自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: ++i i自增1后再参与其它运算。 --i i自减1后再参与其它运算。 i++ i参与运算后,i的值再自增1。 i-- i参与运算后,i的值再自减1。 在理解和使用上容易出错的是i++和i--。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。 【例3.16】 main(){ int i=8; printf(%d\n,++i); printf(%d\n,--i); printf(%d\n,i++); printf(%d\n,i--); printf(%d\n,-i++); printf(%d\n,-i--); } i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出-8之后再加1(为9),第7行输出-9之后再减1(为8)。 【例3.17】 main(){ int i=5,j=5,p,q; p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j); printf(%d,%d,%d,%d,p,q,i,j); } 这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。 String?? ?? String::operate=(const?? String?? other/**/)?? {?? ????????? if?? (this?? ==?? other)?????? //这里为什么是other?直接用other可以吗??? /*?? 因为this是一个指针,指向这个对象本身.指针是地址,other,是求other的地址?? 只能用地址和地址来做比较?? ,other是对象,other才是对象的地址?? */?? ?????????? return?? *this;???????? //*this是引用类型吗?返回this可以吗? /*?? 由于this是对象的地址,*this才是对象,如果返回this,由于this已经是地址了,this是地址的地址,?? 当然不行?? */?? ????????? delete?? m_data;?? ????????? m_data?? =?? new?? char[strlen(other.data)+1];?? ????????? strcpy(m_data,?? other.data);?? ????????? return?? *this;?????????????????? //同上?? } J+=2 也就是相当于这样的J=J+2。。就是先让J的值加上2,再把它赋给J,如果原先J是2的话,那么执行完J+=2 之后,J的值就是4了 还有类似的a- =3,同样,就是相当于a=a-3c#中 条件运算符的用法 悬赏分:5 - 解决时间:2009-6-1 08:56 int? x =

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档