- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
逗号表达式赋值表达式和逗号表达式
逗号表达式:赋值表达式和逗号表达式 疯狂代码 http://CrazyC/ ĵ http:/CrazyC/VC/Article57590.html C把赋值运算符连接而成式子叫做赋值表达式例如:a=b、a=b+c、a=3等赋值运算符是个双目运算符必须两个 参和运算值其左边值叫做l-value通常是变量或赋值表达式常量和常变量不可以作为赋值表达式左值赋值运算符 右端值叫做r-value通常个常量、变量或表达式 C把逗号运算符连接式子叫做逗号表达式例如:“aa*3”“b+3d/4”等逗号表达式右被称为顺序求值表达式它值 是最右端表达式值例如有如下逗号表达式: a*=5a+2 假设a=3该逗号表达式求值步骤是先计算左侧表达式a*=5结果是a=15然后计算右侧表达式a+2值是17整条逗 号表达式值为17 把赋值符和逗号连接式子作为表达式看待是C特点的引入赋值表达式和逗号表达式使C语句变得十分灵活丰富合 理使用赋值表达式和逗号表达式可以大大精简代码使更紧凑下面我们来看看使用这两种表达式时窍门技巧和应 当注意到问题 1: # iostream using std; { unsigned a; b=-1; a=b; coutaendl; 0; } 大家可以先猜测下运行结果 运行结果为65535为什么是这个结果呢?其实仔细想想很容易得出答案:我们知道型变量在内存中是占两个字节 即16个 2进制位因此用-1给b赋值以后b中值就是1111,1111,1111,1111 【注】然后将其赋给a a所占内存也是 16位原封不动全部搬过去 a值也变成1111,1111,1111,1111 a是无符号数它所有位都表示数值 1111,1111,1111,1111对应十进制数即使65535因此输出结果就是65535 【注】:所谓补码就是将该负数绝对值原码取反后最低位加1得到 2进制编码例如求取-3补码步骤如下: 第步:计算出3原码:0000,0000,0000,0011 第 2步:将3原码取反:1111,1111,1111,1100 第 3步:将取反后原码加1:1111,1111,1111,1101 1111,1111,1111,1101即是-3补码 例1运行结果给了我们个警示——区别类型变量相互赋值时定要考虑他们编码形式即值域范围否则可能得到和 我们期望相差十万 8千里结果 例2: # iostream using std; { a=3; a4; coutaendl; 0; } 这个例子无甚特别的处它仅仅介绍说明了赋值运算符可以跟基本运算符组合成为符合赋值运算符常见到组合方 式有、-=、*=、/=、%=、=、=、=、|=、∧=有关这些符合赋值运算符使用方法此处不作介绍大部 分教授C基础书上都有不清楚可以自己去查看下面我们来看个有趣问题有如下表达式: a=5*8,a*10 问该表达式值是多少? 讨论对该表达式求解可能会有两种区别声音:其认为a=5*8是个赋值表达式它跟后面a*10起构成了个逗号表达式 所以求解时先算出a=5*8值然后计算a*10值;另种声音认为5*8,a*10是个逗号表达式应当先求这个逗号表达式 值然后将逗号表达式值赋给a倒底那种理解对呢?这就需要查考两种运算符运算优先级了赋值运算符优先级要高 于逗号运算符因此对表达式a=5*8,a*10求解应该是先计算a=5*8然后计算逗号表达式值 例3: # iostream using std; { a; a=3; cout(aa=aa)endl; 0; } 问输出结果是多少? 很多人见到诸如aa=aa这样表达式时还没研究先就头脑发晕了其实大可不必这么惶恐冷静下来仔细想想这个表 达式还是很容易求解要求解这个表达式需要知道个先决条件——赋值运算求值顺序赋值运算都是从右至左求值
有哪些信誉好的足球投注网站
文档评论(0)