对编程有一定了解的人都能理解这一点,一是一二是二,电脑不认模棱两可的回答,因为“模棱两可意味着更多的可能答案”,所以你跟程序员交谈的时候,如果你问他“为什么要这样问”或“你为什么听不懂”,你就会知道你自己的描述有多么的不严谨了。
最简单的例子,你妈妈让你去市场买水果,如果看到有苹果就买一个苹果,看到梨就买两个。你看到市场有苹果和梨,你会买什么回家?
首先给出一个大前提,在程序上不存在“潜台词”或者“潜规则”这种东西,唯一起作用的只有“字面意思”。
一般人肯定是买一个苹果和两个梨。当然程序员也不是脑子有坑,以一个正常人的思维考虑也会买一个苹果和两个梨,但是看到这问题的第一个瞬间的直觉反应,却是“如果看到梨就买两个苹果”。这个问题不存在潜台词,所以所有人都会直接从字面理解老妈的意图。
按照程序的逻辑分析,这句话共分为两个部分,代表两个程序任务。“如果看到有苹果就买两个苹果”为任务一,条件是“看到有苹果”,目标对象“买苹果”,数量“一个”;“如果看到有梨就买两个”为任务二,条件是“看到有梨”,数量“两个”,没有给出新的目标对象。
因此按照程序逻辑来讲,第二句话将继承上一个目标对象,也就是“买苹果”,所以这句话被看起来像职业病一样的思维直接翻译成了“如果看到有苹果就买一个苹果,如果看到有梨就买两个苹果。”
————————————————————
2、程序员看问题比一般人透彻。
这是职业特性导致的,因为电脑编程的严谨性,因此程序员面对一个问题、一个需要实现的目标或者一个bug时,他会思考更底层的问题,并且会习惯性采用归纳法来尽量避免以后可能遇到同样的问题。
比如用输入法输入中文的词句,有的时候打出了一串拼音,然后按下数字2选取发现不是自己想要的词,然后发觉数字1对应的才是自己想要的,删掉,重新输入拼音,这次按下数字1的瞬间却发现两个词的位置调换了,于是又删掉重新键入,这次认真地看了看,终于选对了想要的词的序号。
这个时候你会说,啊,我下次应该更小心一点,不要马虎大意想当然,看清楚了再点。
程序员不这么想,他会想,导致这个问题的看来是输入法的“词语顺序自动调整”功能,他会自动监测使用者输入的各种词语的频率,来自动调整词语的顺序,底层代码实现的逻辑很简单,每个不同的词对应一个从输入法安装到现在的输入次数的计数器,直接按计数器排列顺序就好了;也有的输入法会监测你输入后是否会将其删掉,那么这时候会被智能识别为打错字,计数器不会加一。
然后再一思考,这种功能一般都是可以开关的,如果我想要靠记忆记住顺序使用而不用输入法自动调整的话,比如对汉字输入的速度有一定要求需要考记忆记住汉字序号,我只需要进入输入法设置将其关掉即可;如果我想要它帮助我调整词句位置,但是又不需要频繁地调整,那么在我有工作需要的时候我会提前关掉,平时开启即可;而如果我想单纯依赖这一功能,那就不用管它,下次看清楚再选就好了。
如何实验验证实参数组元素和形参数组元素共享同一内存?
可以将实参数组元素的内存地址和形参数组元素的内存地址比较,相同则为同以内存
比如: int x x = &FC[0]可以得到第一个元素的内存地址。
2. Average函数内查找最大值和最小值时需要更新pmax和pmin的值还是*pmax和*pmin的值?为什么?这两种做法有何区别、对main的影响如何
两者都可以;因为*pmax和*pmin是数值,pmax和pmin只是指针,指向数据的地址。两者修改都可以达到效果。对main的没有影响!
对于初级程序员要想提高这两方面的能力,最好的办法就是解剖麻雀——向前人的经典案例学习。初级程序员还不需要完成高难度的突破,需要做的是掌握基础知识,了解前人遇到了哪些问题,他们是如何思考和解决的,
多看多思考,经常动手做,就会大幅度提高自己这两方面的能力的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)