Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1270582
  • 博文数量: 482
  • 博客积分: 13297
  • 博客等级: 上将
  • 技术积分: 2890
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-12 16:25
文章分类

全部博文(482)

文章存档

2012年(9)

2011年(407)

2010年(66)

分类: LINUX

2011-05-22 16:40:03

悬赏分:0 | 解决时间:2006-6-27 08:26 | 提问者:
C语言中:a+++b是什么意思? a+++b等价于(a++)+b还是a+(++b)呢?还是跟编译器有关呢?为什么?

最佳答案
编译器在提取符号时,总是尽可能多地将后面的符号纳入到前面的表达式,除非纳入之后会让一个有效的表达式变成无效,例如: a+++b 编译器认为它和下面的式子等价: (a++)+b 操作符的优先和结合性不是用于此处,它们是运行阶段的限制。
9
回答者:热心网友 | 回答时间:2008-10-8 18:18 | 

提问者对于答案的评价:

谢谢你这么快就为我解答,,
====

c语言有这样的一个规则:每一个符号应该包含尽可能多的字符.也就是说,编译器将程序分解成符号的方法是:从左到右一个一个字符地读入,如果此字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两上字符组成的字符组成的字符串是否可能是一个符号的组成部分,如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号.这个处理的策略被称为"贪心法则".

如:int a = 0,b = 0;

a+++b用贪心法则就是 : a++ +b 

阅读(3697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~