你是介于将入未入之间,有用心就不错,但仍要再加力。写程序、编码,跟写文章一样,要有一份敬重心态,对写出来的文字负责。举个例子:一个判断语句 if(a * b > c),你可能没觉得有什么可疑,*肯定优先于>,但同样的情形&p->score,你还有这样的信心吗?a + b > c + d这个表达式,在不熟悉优先法则的人看来,会不会把a + (b > c) + d视为一个选项?如果我真用括号括着那样写,不行吗?编译器知道编码者的真实意图吗?你有什么办法把意图表达得毫无歧义?你知道这个问题其实与i++*++i、a[i]=i++等是同质的吗?
写程序,对任何、一切的地方都这样推敲,写小片段、函数是这样,把各个段落、函数、模块组合拼装的时候,更要强化类似的推敲,直至确信没有问题,再进入下一步。高手不是说在10分钟之内拿出程序代码那种人,也不是两三天、一个星期就可以交付小型程序的人,而是对产品怀着完美追求情结的人——那是自己的孩子。
问题有深浅之分,有些是常识之内的,比如最起码的怀疑态度、懂得留意编译信息之类,能够自己解决最基本的、依据常识就可以解决的问题,就算入门了。x = *p++,虽然是C程序员很习惯的写法,因为那只是一种条件反射,无条件默认那是x = *p, p++的替代写法,但其实,要写出同类p++, x = *p的替代写法,怎么写?如果写出来的形式你觉得很怪异、不习惯、没把握,会不会非写成那样不可以示专业?多写一行会要你的命?懂得这样变通,就算入门了。
[
本帖最后由 TonyDeng 于 2011-10-24 13:50 编辑 ]