首页 > 代码库 > C语言(贪心法)
C语言(贪心法)
C语言有这样一个规则,每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符地读入,如果字条可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分,如果可能,继续读入下一个字条,重复上述判断,直到读入的字符组成的字符串已经不再可能组成一个有意义的符号。这个处理的策略被称为“贪心法”。需要注意的是,除了字符串与字符常量,符号的中间不能嵌有空白(空格、制表符、换行符等)。
看一下下面的代码:想一下输出会是什么?
#include "stdio.h" int main(void) { int a=2; int b=3; int i=1; printf("%d\n",a+++b); printf("%d,%d\n",a,b); a=2;b=3; printf("%d\n",a+++(++b)); printf("%d,%d\n",a,b); a=2;b=3; printf("%d\n",i); printf("%d\n",++i+(++i)+(++i)); printf("%d\n",i); i=1; printf("%d\n",++i+(++i)+(++i)+(++i)); printf("%d\n",i); i=1; printf("%d\n",++i+(++i)+((++i)+(++i))); printf("%d\n",i); return 0; }
在计算机里面始终只有一个i.++i+(++i) 计算机会先进行两个++i操作,然后才会进行+操作。所以会有以上的结果。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。