简单理解贪心法

贪心法

简单理解贪心法_第1张图片简单理解贪心法_第2张图片

上文翻译过来就是:在c语言中,编译器识别符号从第一个开始向后匹配,尽可能多的占有新的符号,从而保证能够构成具有明确意义的符号。总之就是尽可能的多占用符号

解释上面的几个例子

示例一

简单理解贪心法_第3张图片

示例二

简单理解贪心法_第4张图片

这里到底是i++再加j呢?还是i加++j呢?其实也很好判断,根据贪心规则,编译器总是想要读取更多的字符,所以它会一直向后读取,并把尽可能多的字符看成一个有效字符,也就是读取完三个加号,把前两个看成++后一个看成加号。这里也有个简单的验证方法,直接按回车,编译器会自动分好

简单理解贪心法_第5张图片

示例三

如果我们写五个加号,编译器又会怎么断呢?

简单理解贪心法_第6张图片

很明显,这并不是按照我们的想法去断的。这也突出了贪心法的特点就是贪。它并不一定是正确的但它一定要读取更多的字符,所以面对这种较长的算式,我们最好是自己断一下

简单理解贪心法_第7张图片

总结一下:贪心法是一种规则,并不保证一定正确,它只是尽可能的多读取字符。从侧面也可以看出空格不是只有我们原来认为的那样让代码更好看(空格也有对应的ascll码值),同时也能在我们进行操作符表示的过程中起到匹配划分的作用

简单理解贪心法_第8张图片

你可能感兴趣的:(#,初识c语言,c语言,开发语言,算法)