请问一下,c = a+++b;语句怎么拆解?

贪心法C语言有这样一个规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符地读入,如果该字符可能组成一个符号,那么再读入... 贪心法
C 语言有这样一个规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程
序分解成符号的方法是,从左到右一个一个字符地读入,如果该字符可能组成一个符号,
那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组
成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串
已不再可能组成一个有意义的符号。这个处理的策略被称为“贪心法”
。需要注意到是,除了字符串与字符常量,符号的中间不能嵌有空白(空格、制表符、换行符等)。比如:==是单个符号,而= =是两个等号。
按照这个规则可能很轻松的判断 a+++b 表达式与 a++ +b 一致。那++i+++i+++i;会被解
析成什么样子呢?希望读者好好研究研究。另外还可以考虑一下这个表达式的意思:
a+++++b;
展开
 我来答
碧血玉叶花
推荐于2016-02-05 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1672万
展开全部
先解释一下 += 和 ++ 是什么意思+= 的意思是 左值和右值相加结果赋值给左值如 a=1;b=2;a+=b;后,a=3;b=2。++ 的意思是变量自加1,如a=1;a++;a的值是2,在c中,++有前置和后置如 ++a;a++;,单独使用的时候是没有区别的,都是自加1,在有运算时就有区别了,前置的++是自加后才参与运算,后置的++是参与运算后在自加1。如题的画,假定a=1,b=2,a+=b++的意思就是b=2先参与a+=b运算a=3,然后b自加1,b=3;如果b++换成前置++b,a+=++b就是b先自加1,b=4,然后参与a+=b运算,a=4。
风行天下中
2015-06-13 · TA获得超过561个赞
知道小有建树答主
回答量:369
采纳率:100%
帮助的人:212万
展开全部
先是++B,即B=b+1;
再计算a+B,再将计算结果赋值给C
追问
81、What are the values of a, b, and c after thefollowing instructions:
int a=5, b=7, c;
c = a+++b;
【标准答案】a=6,b=7,c=12
追答
上机运行了下,假设A=B=1;结果确实是A=2,B=1.C=2;那么应该是这样的,在进行编译的时候,读取顺序是从左到右,那么读到的是C=(a++)+b,因为a++是后置,运算优先级小于+,=。所以拆分应该是a(a=1)+b(b=1)=2;c=2;a=a+1;谢谢LS帮我纠正了错误,一眼看到++B就想当然了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式