有如下程序,求result的值
#include<stdio.h>
void main(){
int i=1;
int j=1;
int result=i+++j;
printf("result=%d\n",result);
}
假如我们根据自增的优先级及结合性,自己算出的值为3,而经程序运行得出的值为2,这样的情况便是贪心法则造成的。c语言有这样的一个规则:每一个符号应该包含尽可能多的字符.也就是说,编译器将程序分解成符号的方法是:从左到右一个一个字符地读入,如果此字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两上字符组成的字符组成的字符串是否可能是一个符号的组成部分,如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号.这个处理的策略被称为"贪心法". |
|