静静的评论不符合安全规范语法规范吗

“面条儿”的语法大量的研究结果已经告诉我们,语法知识的多少和交流的流利程度与正确程度之间,是没有丝毫关系的。语法书倒背如流,还是不能交流,还是会出语法错误。原因很简单,从说话的思维机制上讲,人在说话时,大脑是禁止思考语法规则的。一旦想语法规则,人就不能说话了。想一下我们中文都说得这么流利,能去想语法规则吗?主语用这个,谓语用那个,状语放在这里……觉得可笑了吗?& & &你认为你的汉语语法知识如何?给大家出一道关于汉语普通话的语法题,来检测一下我们是否会应用中文语法知识吧:“油条”, “面条儿”,“薯条儿”,这三个词在普通话中,有的要带“儿”化音,有的不能带。答案是不可以说“油条儿”,但也不能说“面条、薯条”,台湾人才“酱紫”讲话。这几个很相近的词,为什么有的要加“儿”,有的不加?首先说明这跟“油”字儿没关系,因为“油饼儿”这个词中也有“油”字,但需要加“儿”,所以不是“油”决定的。实际是跟“条”有关系。那什么样的“条”加“儿”,什么样的不加?有什么语法规定?大家一般都说没有语法规定或不知道。其实这里面有很严格的语法规定。大家先观察一下,这些“条”有何不同?原来是形状不同。油条粗,所以不带“儿”,面条儿和薯条儿细,所以带“儿”。所以关于“条”的儿话音的语法规定第一是:由条的粗细决定是否应该加“儿”进行儿化。那究竟多细才开始儿化?没界定,但一般以拇指粗细判断。所以这一个语法规定是首先由条的形状属性决定。可如果是这样,那“车条”很细,为什么说“车条”时又不带“儿”?“布条儿”不一定细,为什么又要带“儿”?原来这里还有第二个语法规定:硬的不能带“儿”,软的要带“儿”。车条硬,布条儿软。所以还要根据条的材料物理属性确定。这时已经有两个主要属性来决定“条”是否儿化了。但如果两个属性相矛盾怎么决定?比如一个条粗但很软,或细却很硬,那该如何进行“儿化”?& &&笔者曾读到过此领域一位专家为此总结出的一个公式:给词的每个不同属性一个参数值,如果有两个属性同时出现,用第一属性的参数值乘以第二属性参数值的平方,看计算结果是否大于某个常数来决定是否“儿化”。啊!被雷倒了。研究到如此程度算真够专业的了,可要让咱们这样去掌握中文,绝对歇菜!再说光一个“条”就这样复杂了,换成“饼”不就更复杂了?这时不再只是粗、细和软、硬两组参数的问题,而是饼的软、硬,薄、厚,大、小,形状,有馅儿还是没有馅儿,馅儿在饼里面还是馅儿在饼上面,饼烙得脆与不脆,是用来卷大葱还是用来卷烤鸭等十几个参数来决定是否要“儿化”的问题了。难道说话的时候还要想语法规则,用计算器算参数值?& &&英语语法真要细分也是很多很复杂的。我们高中学的英语就出现了2,000个语法点,光是no与not的区别就得几页纸才能讲完。要到真正高阶段,大小语法规定一定上万条了。先不说是否需要掌握这么多英语语法规定,谁能都搞清楚并都记住呀?当然记住了也不一定会使用。可明明您不会中文关于“油条”的语法知识,您又是怎么做到连想都不想,就把它说正确的呀?这还是我们大脑神经之间的有机“联系”决定的。我们后面会介绍。& &&所以语法知识不但不帮助形成英语思维,反而在捣乱。Krashen博士坚定地认为语法是妨碍语言能力的。由于学习语法知识对语言交流能力的无效以及大家学习了语法最后也都用不上等原因,使得语法教学在广大学习者中地位尽失。更多的人发现了学习语法知识对交流的无用。在此不多评论,仅引用Geoffery Wagner在《词语的智慧》一书中对语法规则制造者的辛辣的讽刺:“事实上,语法规则从来就没有真正存在过。它们跟语言也没什么关系,而是被一些满脸被人扔了臭鸡蛋的墨水瓶脑袋学究们,强行加入到有机的文字中的。”& &&学习语法知识当然是它的特定应用价值,我们会在后面的章节里面再谈。我们至少先明白了,学习英语不应该从学习语法知识入手,努力学习语法知识,并不能提高交流能力。拉森-弗里曼次序语言学家发现,儿童在英语能力的形成上,对各种语法的真正掌握,是有个特定的自然次序的。如果采用语法教学,无论你先教那个语法知识点,人们对语法应用能力的掌握次序,仍然按照这个特定的“自然次序”,而不是按教学中语法点的教学先后次序(Corder,1967)。这再次证明,对语法的真正掌握与语法教学是没有直接联系的。语言学家通过统计和实验,总结出了儿童对英语语法能力掌握的自然次序,被称为“拉森-弗里曼语法习得次序”(Larsen-Freeman order of grammatical morpheme acquisition)。看一下语法的自然先后次序,你就会发现跟我们当初语法知识的学习次序有多么不同:1、 进行时ing2、 in,3、 on4、 复数5、 不规则动词中的过去式6、 所有格 ’s7、 is, am, are8、 冠词9、 规则动词的过去时开始出现-ed10、规则第三人称单数 –s11、不规则第三人称单数 -es& &&研究表明,对于成年人来说,无论是德国人还是中国人学习英语,无论在课堂先学习哪条语法知识或者根本不学语法知识,在实际应用中对英语语法的掌握和语法应用能力的形成顺序,和上面这个儿童自然掌握语法的次序是很相似的(只有一个儿童学不规则动词过去时的U型现象成人不出现,这个我们后面会讲到),语法能力的形成,完全不按照你学习语法知识的顺序来,不学语法也照样按这个顺序形成语法能力。而且成年人的英语语法能力的逐渐形成次序,和自己以前使用的是哪种母语,没有太多关系(Larsen Freeman, 1978)。& &&简单地说,就是从英文说和写等的实际应用能力上,体现出我们最先掌握英语的现在进行时态-ing形式,其次是一般过去时动词变位-ed的用法,最后才是冠词和第三人称单数-s。成年人无论是否学语法知识,语法能力的掌握都会符合拉森-弗里曼习得次序。所以真正的语法能力的形成,和你学语法知识的过程没有必然联系。无论成年人暴露于外语环境中自然接触外语,还是在不科学的外语教学环境下学习外语,语法能力的掌握次序是相同的(Turner,1979),他们在外语使用中显露出来的错误是相同的(Felix,1981;Wode,1981),语言能力的发展路径也是相同的(Pienemann,1985)。很多人在英语学习的高级阶段,说英语时的语法错误已经减少的情况下,最后剩下的这个顽固的第三人称单数的毛病,还是常会犯的。(未完待续,关注我们)大思教育大思英语(dasiedu) 
 文章为作者独立观点,不代表微头条立场
的最新文章
希望在我们身上发生的悲剧,不会在孩子们身上重演。任何过分强调家长参与的教育,都不是好的教育!不擅长英语的人会觉得英语与工作关系好像不大。是不是这样呢?我们听听一位妈妈怎么说的......教育的目的是让孩子养成自主学习的习惯,还是家长一直要在旁边辅助,越俎代庖?妄想在短时间内掌握一门语言是不现实的,但选择一种好的方法,坚持下来绝对会有收获,冠延的成绩,就证明了这一点。一个人,就算是对英文一窍不通,通过天天练习模仿,也是可以在表演上惟妙惟肖。但!是!这跟他是否熟练地掌握了英语这一门语言,没有半毛钱关系。我向来不赞成为了孩子的学习,家长做出太多的牺牲。能够通过教育孩子来达到像汪培珽那样自我实现的人,毕竟只是凤毛麟角。学习是需要时间的,这点毫无疑问!但是,我对英语学习方法的理解是:越是强调家长的牺牲与励志,孩子越难学得好,方法也越不是好方法!贪多求快不持续是人的本性,不仅仅英语听力训练会如此,很多事情都会因为这个原因被迫放弃。但是,一旦我们更深入的了解事物的本质,我们往往越能对抗这种与生俱来的本性。一、12岁前的孩子最擅长通过声音的方式学习。
二、12岁前的孩子通过声音的方式学习,倍感轻松,不会觉得烦躁和辛苦。
三、12岁前大脑处在发育中,这时的可塑性强。学校里的教育往往与现实脱节,尤其是英语教育。说它落后脱节,绝不是什么抱怨之词,而是我这十几年从事教育行业发自内心的真切感受。第一步没练听力,最终导致背单词很辛苦,练听力更辛苦,孩子承受了学英语的双重痛苦!
第一步练听力,根本不用死记硬背,轻轻松松,看看刚刚出生的婴儿学语言就知道了。当听力变好了,英语是拼音文字,单词好背了很多,孩子再也不用咬牙切齿痛恨背单词了。在学英语的道路上会碰到各种挑战,背单词的问题、学语法的问题、不能开口的问题、考试成绩差等等各种问题,让人眼花缭乱、杂乱无章,如果学生们只是学会各种技巧来解决,这样,表面看上去问题解决了,而其实并没有本质性的提升,往往把隐患延伸到了以后。大家还记得孩子小学一年级时一年学多少个汉字吗?
答案是1500个左右!
一年能学会1500个汉字,但是6年却掌握不了800个英语单词?!为什么呢?难道英语单词难认、汉字容易记?
答案是英语听不懂!汉语能听懂!就是这么简单!学生普遍反应学习英语枯燥无味,看来也不能完全怪罪学生不爱学习了。如果让你天天用对着谱子的方法学唱一首歌,你又怎能享受唱歌原本的乐趣与意义呢?如果要求每一个人都必须用文字字符来学唱歌,那唱歌肯定也会变得很无趣,会唱歌的人肯定会少很多很多!语言能力的获得有其自身规律,这个规律就是“听、说、读、写”之间的内在关系。很多外语学习者都能明白听力的重要性,但是,其实听力的重要性远远超过一般人的想象!今天向大家介绍一姐弟的英语学习之路。学校里英语考试,姐姐一直是100分,而且英语听力非常优秀,比6年级学生还要好的多!弟弟虽然才四岁,但是也非常厉害!学英语,一定要从听力训练开始,走对了第一步,后面会越来越顺利,家长也不用操太多心。如果第一步没走对,后面的路越走越难越困惑越无助!大部分家长只知道要让孩子学好英语,但是如何学、如何协助孩子学好英语?往往还是不明白,一不小心就让孩子走了弯路,耗时费力、进步缓慢,十分可惜!语言学家发现,儿童在英语能力的形成上,对各种语法的真正掌握,是有个特定的自然次序的。如果采用语法教学,无论你先教那个语法知识点,人们对语法应用能力的掌握次序,仍然按照这个特定的“自然次序”......立刻点击阅读语言的本质是声音,而不是文字。常规的记忆法对处理文字上是有效果的,但是对于声音的处理往往效果不好!对于学语言而言,没能掌握声音,背再多的单词也是于事无补!英语单词的学习:一是学习要按小时数计算,而不能用天数。小时数能够让自己明确真正的学习时间(其实并不长),并且做到有计划,有步骤。而天数只会麻痹自己,会误以为自己“学习了多少天、多少个月”,其实有效时间很短......请立刻点击,详细阅读很多同学在使用英语时总感觉想不起要用什么词来表达,“词到用时方恨少”!
其实不是单纯多少和不熟悉的问题,主要问题是出在该外语单词在大脑中的输入、存储和联结方式上。很多英语学习者认为要想听懂英语就必须听清楚每个单词的意思,这个想法是不正确的。现代心理学已经证明:“想听懂,必须会猜”!隆重推出漏屋老师的系列文章。它凝聚了漏屋老师长期从事专业英语教学的经验和对此领域现状的严肃思考,语言生动轻松、通俗且不失幽默,读来常有惊人之笔,其切中要害之处,往往令人拍案叫绝。正在学英语的或是家里有娃正在学英语的,这些文章绝对是必读作品!语言能力的获得有其自身规律,这个规律就是“听、说、读、写”之间的内在关系。英语学习者都能明白听力的重要性,但大思小编:我们发现有很多关于语言学习的经典文章都是出自妈妈之手,今天和大家分享的这一篇文章是林可妈妈所写。林可妈妈在孩子学英语上一路陪伴、用心良苦,并且积累了很多的经验,值得家长们借鉴!语言能力的获得有其自身规律,这个规律就是“听、说、读、写”之间的内在关系。很多外语学习者都能明白听力的重要性,但是,其实听力的重要性远远超过一般人的想象!dasiedu每天20分钟,只需一年,一年级学生英语听力达到六年级水平!关键是坚持一点都不难!热门文章最新文章dasiedu每天20分钟,只需一年,一年级学生英语听力达到六年级水平!关键是坚持一点都不难!每天分享纯干货给大家,希望对你有所帮助。规律1&&考查英语语法基础知识尽管专升本英语的单项填空题的考点分布很广,但可以肯定的是,它主要涉及的还是英语语法的基础知识,只有具备一定的语法基础,同时兼顾一定的解题方法和技巧,大部分考题都是可以做出来的。如:&先看选项,看考点1. Judy isgoing to marry the sailor she ______ in Romelast year. (2008重庆卷)A. meets&& &&B.met& &C. hasmet&&&&&&&D.would meet2. Isn’tit amazing how the human body heals ______ after an injury? (2008江西卷)A.himself&&&&&&&B.him&&&&&C.itself&&&&&&&D.it&&&主句时态决定从句时态&1 【分析】B。根据句末的last year可知,空格处应用一般过去时。注:she met inRome last year为修饰the sailor的定语从句。2 【分析】C。同学们在初中英语中就学过,当主语和宾语指同一个人或事物时,宾语必须要用反身代词,不能用宾格代词。注:heal oneself在此指“自愈”。规律2&&在语境中考查语法运用近年来专升本英语单项填空的一个最大特点就是突出语境考查,即将具体的语法知识置于特定的语境中进行考查,既考查运用语法知识的正确性,同时也考查运用语法知识的得体性。如:1. Ithought you’d be late for the concert, ______ we ended up getting thereahead of time. (2008湖南卷)A.but&&&&&B.or&&&&C. so&&&&&D. for&【分析】A。比较空格前后两句的意思:前面说“我原以为你听音乐会会迟到的”,后面说“结果我们提前赶到了”。很显然空格处应填一个表转折的连词,这样才符合句子的语境。2. You______ be hungry already—you hadlunch only two hours ago! (2008浙江卷)A.wouldn’t&&&&&&&B.can’t&&&C.mustn’t&&&D. needn’t&【分析】B。做好此题要注意句子后半部的语境。既然you hadlunch only two hours ago(你两个小时前才吃过中饭),所以你现在“不可能”就饿了,所以答案选B。规律3&&综合考查语法基础知识这里说的综合考查语法知识,指的是一道考题同时考查两个或多个语法点,如将时态考点与语态考点综合,将时态考点与主谓一致考点综合,将非谓语动词考点与并列句考点综合,将复合句考点与简单句考点综合,等等。如:1. —Didyou go to the show last night?—Yeah. Every boy and girl in the area ______ invited. (2008陕西卷)A.were&&&B. havebeen&&&&&&&C.has been&&D. was&&【分析】D。此题既考查时态的用法,同时又考查主语一致。根据问句中的时态和last night这一短语可知,此处谈的是昨晚的事,故应用一般过去时,而不用现在完成时。另外,根据英语语法,当两个或多个名词并列作主语,且受到every的修饰时,其后谓语动词要用单数。故答案选D。2. —Do youhave any problems if you ______ this job?—Well, I’m thinking about the salary... (2008湖南卷)A.offer&&&B. will offer&C. are offered&&&&D. will be offered&&【分析】C。此题既考查时态,同时又考查被动语态。由于if引导的是条件状语从句,所以要用一般现在时表示将来意义,而不能直接使用将来时态,故可排除B和D;再根据offer sb sth(为某人提供某物)这一句式可知,sb与offer之间为被动关系,故要用被动语态。规律4&&在特定语境中考查边缘知识(固定短语、固定搭配)这里所说的边缘知识,指的是一般语法上涉及得较少,许多同学在复习中接触较少的知识点。这类考点有的虽然一般语法书讲得较少,但并不意味着它在英语中并不重要。如:1. Whenshe first arrived inChina,she wondered what the future might have ______ for her, but now all her worriesare gone. (2008湖北卷)A. inneed&&&&&&&B.in time&C. in preparation&D. in store&【分析】D。in store for是习语,其意为“为……储备着”“等待着……”,如:The runner kept someenergy in store for spurting at the end.&那名赛跑的人为最后的冲刺贮存精力。There’s a surprise in store for you.&你一定会大吃一惊的。2. Elizabeth has alreadyachieved success ______ her wildest dreams. (2008陕西卷)A.at&&&&&&&B.beyond&&&&C.within&&&&&D.upo【分析】B。beyond one’swildest dreams为习语,其意为“远远超出想象或希望”,这可能是许多同学不太熟悉的一个用法,并且它在教材中也没有出现过。又如:The schemesucceeded beyond my wildest dreams.&这个计划超乎异常地成功了。3. Enginesare to machines _______ hearts are to animals. (2006山东卷)A.as&&&&&&&B.that&&C. what&&D. which&【分析】C。这是一个比较难的考题,就算是放到大学四、六级考试中也绝对算是难题,一般的英语语法书也绝对没有涉及此问题,就是连最新出版的《牛津高阶英汉双解词典》和《朗文当代高级英语辞典》的what词条下也找不到此用法。现分析如:what&在此用作连词,其意为“好比”“犹如”“就像”,用以引导相似状语从句。如:Air is tous what water is to fish.&我们离不开空气,就像鱼儿离不开水一样。Reading is to the mind whatfood is to the body.&读书与思想的关系就好比食物与健康的关系。规律5&&在复杂语境中考查简单知识有的知识点本来很简单,如果是单独进行考查,一般学生都不会出错,但是如果将其置于一个较复杂的语境中,许多考生就可能受复杂句子结构的影响而选错。如:1. —Couldyou tell me how to get to Victoria &Street?& (2008辽宁卷)—Victoria Street? ______ is where the Grand Theatre is.A.Such&&&B.There&&&&&&C.That&&&&&&&D. This&【分析】C。此题考查指示代词that的远指用法,这是同学们在初中就学过的知识了。但是,由于命题者将这个本来很简单的知识点放到了一个比较复杂的对话背景中,分散了同学们对被考查知识点的注意力,所以许多同学在做此题时选错了答案。请再看一个类似的例子:That daywe visited an old house. That’s where he spent his last years.&那天我们去参观了一座老房子,那就是他去世前几年他住的地方。这类句式如果改用this,则表近指,如:This iswhere the river is deepest.&这是河流的最深处。This is where we change from car to bus.&这就是我们从小汽车换乘公共汽车的地方。2. If theweather had been better, we could have had a picnic. But it ______ all day.(2008全国Ⅱ)A. rained&B.rains&&&&&&&C.has rained&&&&&&D.is raining&&【分析】A。此题考查一般过去时的用法,但试题使用了虚拟语气作为命题背景,且该虚拟语气谈的是过去情况(根据句中的had been和could have had可知),句意为“要是(当时)天气好一点,我们就可以去野餐了”。该虚拟语气的言外之意是“(由于天气不好)我们没有去野餐”。为什么没去呢?but后说的就是其原因:整天都在下雨。这里说的“下雨”,显然指的是过去的情况,故用一般过去时。(我分不清)规律6&&利用思维定势设置干扰项同学们在对某个知识点或重要句式进行反复操练后,往往会形成一定的思维定势。由于思维定势在很大程度上带有惯性,有时甚至是惰性,所以同学们在做题时若不仔细读题,认真分析,很可能会受此影响,步入误区。如:1. Nancy enjoyed herself so much ______ she visited herfriends in Sydneylast year. (2008福建卷)A.that&&&&&B.which&&&&&C.when&&&&&&D.where&&【分析】C。本题很容易让考生受思维定势的负面影响,见到so马上选择that,殊不知此题考查的是when引导的时间状语从句,句意为:南希去年拜访悉尼的朋友时过得非常开心。如果选A,则句意为:南希玩得如此开心以至于拜访了悉尼的几个朋友。显然,意思不合逻辑。2. —Haveyou known Dr. Jackson for a long time?—Yes, since she ______ the Chinese Society. (2008宁夏卷)A. hasjoined&&&&&&B.joins&C. hadjoined&&&&&&D.joined&【分析】D。许多同学认为since总是要与现在完成时连用的,所以误选了A。其实,本句中since shejoin the Chinese Society为I haveknown Dr. Jackson since she joined the Chinese Society之省略。连词since所搭配的时态通常是:主句用现在完成时,从句用一般过去时。3. —Theyare quiet, aren’t they?—Yes. They are accustomed ______ at meals. (2008江苏卷)A. to talk&B. to nottalk&&&&&&&C.to talking&D. to not talking&&【分析】D。此题设计得很巧妙。有的同学在排除选项B时,同时也会排除选项D,因为它们的结构太相似了。但事实上,正确答案正是D。be accustomed to的意思是“习惯于做……”,其中的to通常被认为是介词,后接名词或动名词,但在现代英语中,其后也可接动词原形,即其中的to被视为不定式符号。照此分析,好像四个答案都可以,但其实只有D最佳。因为根据语境分析(注意其中的are quiet, yes等关键词),此题应选一个否定式,故可排除A和C。另外,从语法上分析,非谓语动词的否定式总是将not置于非谓语动词之前,所以C应改为not totalk才对;至于D,由于其中的to是介词,其后接动名词talking作宾语,动名词talking的否定式为nottalking,所以说to not talking是正确的。规律7&&直接引用词典原句进行命题近年来,专升本英语命题一直有个习惯,就是喜欢从一些原版英语词典上直接引用例句进行命题。这点希望引起同学们的注意。下面请看几个例子:1. Myneighbor asked me to go for ______ walk, but I don’t think I’ve got ______energy. (2008辽宁卷)A.&不填&&&&&&&&B. the&&&&&&&&C.&不填; the&D. the【分析】D。go for a walk为固定表达,意为“去散步”;have got theenergy意为“有精力”。此题出自CambridgeAdvanced Learner’s Dictionary的the词条,词典上的原句为:I’d like to go out this evening, but I don’t think I’ve got theenergy.&2. —I’dlike some more cheese.—Sorry, there’s ______ left. (2008浙江卷)A.some&&B.none&&&&&&&C.a little&D. few&【分析】B。由于cheese不可数,故可排除D;再根据句中的sorry可知,此处应填表否定意义的none。注:此题出自CambridgeAdvanced Learner’s Dictionary的none词条,词典上的原句为:“I’d like some more cheese.” “I’m sorry there’s none left.”3. Hefound it increasingly difficult to read, ______ his eyesight was beginning tofail. (2008山东卷)A.though&&&&&&&B.for&&&&&&C.but&&&D. so&【分析】B。for在此表原因。又如:He shookhis head, for he thought differently.&他摇了摇头,因为他有不同想法。&注:此题出自Longman Dictionary of Contemporary English的for词条,词典上的原句为:He foundit increasingly difficult to read, for his eyesight was beginning to fail.分享家Share home▼你的专升本资料获取平台&大分享家(gh_1b5a7e042e97) 
 文章为作者独立观点,不代表微头条立场
的最新文章
每天分享纯干货给大家,希望对你有所帮助。规律1
考查英语语法基础知识尽管专升本英语的单项填空题的考点分布很每天分享纯干货给大家,希望对你有所帮助。 导读:aboveall尤其是,最重要的是 beabsentfromgh_1b5a7e042e97大分享家作为一个专升本的过来者,立志创立一个专升本资料分享平台,分享大量的专升本资料,有专升本问题的同学也可以问我,希望对同样在专升本的你有所帮助。热门文章最新文章gh_1b5a7e042e97大分享家作为一个专升本的过来者,立志创立一个专升本资料分享平台,分享大量的专升本资料,有专升本问题的同学也可以问我,希望对同样在专升本的你有所帮助。3-2活页规范训练_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
3-2活页规范训练
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢(点击上方公众号,可快速关注)来自:cnblogs链接:/me115/p/4800777.html自动类型推导 autoauto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以简化我们的编程工作;&auto是在编译时对变量进行了类型推导,所以不会对程序的运行效率造成不良影响;&另外,似乎auto也并不会影响编译速度,因为编译时本来也要右侧推导然后判断与左侧是否匹配。 // 错误,auto是通过初始化表达式进?类型推导,如果没有初始化表达式,就无法确定a的类型auto i = 1;auto d = 1.0;auto str = &Hello World&;auto ch = 'A';auto对引用的推导默认为值类型,可以指定引用修饰符设置为引用:int x = 5;int & y =&auot &z =// z 为intauto & z = // z的类型为 int&对指针的推导默认为指针类型,当然,也可以指定*修饰符(效果一样):int &*px = &x;auto py =auto*py =推导常量const int *px = &x;auto py = //py的类型为 const int *const auto py = //py的类型为const int *萃取类型 decltypedecltype实际上有点像auto的反函数,使用auto可以用来声明一个指定类型的变量,而decltype可以通过一个变量(或表达式)得到类型;#include &vector&int main() {& & int x = 5;& & decltype(x) y = //等于 auto y =& & const std::vector&int& v(1);& & auto a = v[0]; & & & &// a has type int& & decltype(v[1]) b = 1; // b has type const int&, the return type of& & & & & & & & & & & & & // & std::vector&int&::operator[](size_type) const& & auto c = 0; & & & & & // c has type int& & auto d = & & & & & // d has type int& & decltype(c) & & & &// e has type int, the type of the entity named by c& & decltype((c)) f = &// f has type int&, because (c) is an lvalue& & decltype(0) & & & &// g has type int, because 0 is an rvalue}有没有联想到STL中的萃取器?写模版时有了这个是不是会方便很多;返回类型后置语法 Trailing return typeC++11支持返回值后置&例如:int adding_func(int lhs, int rhs);可以写为:auto adding_func(int lhs, int rhs) -& intauto用于占位符,真正的返回值在后面定义;&这样的语法用于在编译时返回类型还不确定的场合;&比如有模版的场合中,两个类型相加的最终类型只有运行时才能确定:template&class Lhs, class Rhs&auto adding_func(const Lhs &lhs, const Rhs &rhs) -& decltype(lhs+rhs)&{return lhs +}cout && adding_func&double,int&(dv,iv) &&auto用于占位符,真正的返回值类型在程序运行中,函数返回时才确定;不用auto占位符,直接使用decltype推导类型:decltype(lhs+rhs) adding_func(const Lhs &lhs, const Rhs &rhs)这样写,编译器无法通过,因为模版参数lhs和rhs在编译期间还未声明;&当然,这样写可以编译通过:decltype( (*(Lhs*)0) + (*(Rhs*)0) ) adding_func(const Lhs &lhs, const Rhs &rhs)但这种形式实在是不直观,不如auto占位符方式直观易懂;空指针标识 nullptr空指针标识(nullptr)(其本质是一个内置的常量)是一个表示空指针的标识,它不是一个整数。这里应该与我们常用的NULL宏相区别,虽然它们都是用来表示空置针,但NULL只是一个定义为常整数0的宏,而nullptr是C++11的一个关键字,一个内建的标识符。&nullptr和任何指针类型以及类成员指针类型的空值之间可以发生隐式类型转换,同样也可以隐式转换为bool型(取值为false)。但是不存在到整形的隐式类型转换。&有了nullptr,可以解决原来C++中NULL的二义性问题;voidF(int a){& & cout&&a&&}voidF(int*p){& & assert(p != NULL);& & cout&& p &&}int main(){& & int*p =& & int*q = NULL;& & bool equal = ( p == q ); // equal的值为true,说明p和q都是空指针& & int a = // 编译失败,nullptr不能转型为int& & F(0); // 在C++98中编译失败,有二义性;在C++11中调用F(int)& & F(nullptr);& & return 0;}区间迭代 range-based for loopC++11扩展了for的语法,终于支持区间迭代,可以便捷的迭代一个容器的内的元素;int my_array[5] = {1, 2, 3, 4, 5};// double the value of each element in my_array:for (int &x : my_array) {& & x *= 2;}当然,这时候使用auto会更简单;for (auto &x : my_array) {& & x *= 2;}如果有更为复杂的场景,使用auto的优势立刻体现出来:map&string,int&map.insert&make_pair&&(&ss&,1);for(auto &x : my_map){& &cout && x.first && &/& && x.}去除右尖括号的蹩脚语法 right angle brackets在C++98标准中,如果写一个含有其他模板类型的模板:vector&vector&int& & vector_of_int_你必须在结束的两个’&‘之间添加空格。这不仅烦人,而且当你写成&&而没有空格时,你将得到困惑和误导的编译错误信息。产生这种行为的原因是C++词法分析的最大匹配原则(maximal munch rule)。一个好消息是从今往后,你再也不用担心了:vector&vector&int&& vector_of_int_在C++98中,这是一个语法错误,因为两个右角括号(‘&’)之间没有空格(译注:因此,编译器会将它分析为”&&”操作符)。C++0x可以正确地分辨出这是两个右角括号(‘&’),是两个模板参数列表的结尾。为什么之前这会是一个问题呢?一般地,一个编译器前端会按照“分析/阶段”模型进行组织。简要描述如下:词法分析(从字符中构造token)&语法分析(检查语法)&类型检查(确定名称和表达式的类型)&这些阶段在理论上,甚至在某些实际应用中,都是严格独立的。所以,词法分析器会认为”&&”是一个完整的token(通常意味着右移操作符或是输入),而无法理解它的实际意义(译注:即在具体的上下文环境下,某一个符号的具体意义)。特别地,它无法理解模板或内置模板参数列表。然而,为了使上述示例“正确”,这三个阶段必须进行某种形式的交互、配合。解决这个问题的最关键的点在于,每一个C++ 编译器已完整理解整个问题(译注:对整个问题进行了全部的词法分析、符号分析及类型检测,然后分析各个阶段的正确性),从而给出令人满意的错误消息。lambda表达式的引入对于为标准库算法写函数/函数对象(function object)这个事儿大家已经抱怨很久了(例如Cmp)。特别是在C++98标准中,这会令人更加痛苦,因为无法定义一个局部的函数对象。首先,我们需要在我们实现的逻辑作用域(一般是函数或类)外部定义比较用的函数或函数对象,然后,才能使用:bool myfunction (int i,int j) { return (i&j); }struct myclass {& bool operator() (int i,int j) { return (i&j);}}int main(){& & int myints[] = {32,71,12,45,26,80,53,33};& & std::vector&int& myvector (myints, myints+8);& & &// using function as comp& & std::sort (myvector.begin(), myvector.end(), myfunction);&& & & // using function object as comp& & & std::sort (myvector.begin(), myvector.end(), myobject);}不过现在好多了,lambda表达式允许用”inline”的方式来写函数了:sort(myvector.begin(), myvector.end(), [](int i, int j) { return i& });真是亲切!lambda的引入应该会增加大家对STL算法的使用频率;原生字符串 Raw string literals比如,你用标准regex库来写一个正则表达式,但正则表达式中的反斜杠’\’其实却是一个“转义(escape)”操作符(用于特殊字符),这相当令人讨厌。考虑如何去写“由反斜杠隔开的两个词语”这样一个模式(\w\\w):string s = &\\w\\\\\\w&; &// 不直观、且容易出错请注意,在正则表达式和普通C++字符串中,各自都需要使用连续两个反斜杠来表示反斜杠本身。然而,假如使用C++11的原生字符串,反斜杠本身仅需一个反斜杠就可以表示。因而,上述的例子简化为:string s = R&(\w\\\w)&; &// ok非成员begin()和end()非成员begin()和end()函数。他们是新加入标准库的,除了能提高了代码一致性,还有助于更多地使用泛型编程。它们和所有的STL容器兼容。更重要的是,他们是可重载的。所以它们可以被扩展到支持任何类型。对C类型数组的重载已经包含在标准库中了。在这个例子中我打印了一个数组然后查找它的第一个偶数元素。如果std::vector被替换成C类型数组。代码可能看起来是这样的:int arr[] = {1,2,3};std::for_each(&arr[0], &arr[0]+sizeof(arr)/sizeof(arr[0]), [](int n) {std::cout && n && std::});auto is_odd = [](int n) {return n%2==1;};auto begin = &arr[0];auto end = &arr[0]+sizeof(arr)/sizeof(arr[0]);auto pos = std::find_if(begin, end, is_odd);if(pos != end)std::cout && *pos && std::如果使用非成员的begin()和end()来实现,就会是以下这样的:int arr[] = {1,2,3};std::for_each(std::begin(arr), std::end(arr), [](int n) {std::cout && n && std::});auto is_odd = [](int n) {return n%2==1;};auto pos = std::find_if(std::begin(arr), std::end(arr), is_odd);if(pos != std::end(arr))std::cout && *pos && std::这基本上和使用std::vecto的代码是完全一样的。这就意味着我们可以写一个泛型函数处理所有支持begin()和end()的类型。初始化列表及统一初始化方法 Initializer lists在C++98中,对vector的多个初始化,我们需要这样:int myints[] = { 10, 20, 30, 30, 20, 10, 10, 20 };std::vector&int& myvector (myints, myints+8);&现在,我们可以这样:std::vector&int& second ={10, 20, 30, 30, 20, 10, 10, 20};&初始化表有时可以像参数那样方便的使用。看下边这个例子(x,y,z是string变量,Nocase是一个大小写不敏感的比较函数):&auto x = max({x,y,z},Nocase());初始化列表不再仅限于数组。对于常见的map、string等,我们可以使用以下语法来进行初始化:int arr[3]{1, 2, 3};vector&int& iv{1, 2, 3};map&int, string& &m{{1, &a&}, {2, &b&}};string str{&Hello World&};可以接受一个“{}列表”对变量进行初始化的机制实际上是通过一个可以接受参数类型为std::initializer_list的函数(通常为构造函数)来实现的。例如:void f(initializer_list&int&);f({1,2});f({23,345,});f({}); &// 以空列表为参数调用f()f{1,2}; // 错误:缺少函数调用符号( )years.insert({{&Bjarne&,&Stroustrup&},{, 1985}});初始化列表可以是任意长度,但必须是同质的(所有的元素必须属于某一模板类型T, 或可转化至T类型的)。容器可以用如下方式来实现“初始化列表构造函数”:template&class E& class vector {& & public:& & & & // 初始化列表构造函数& & & & & & & & vector (std::initializer_list&E& s)& & & & {& & & & & & & &// 预留出合适的容量& & & & & & & & & reserve(s.size()); & &//& & & & & & // 初始化所有元素& & & & & & & & uninitialized_copy(s.begin(), s.end(), elem);& & & & &sz = s.size(); // 设置容器的size& & & & }& & & & // ... 其他部分保持不变 ...& & };使用“{}初始化”时,直接构造与拷贝构造之间仍有细微差异,但不再像以前那样明显。例如,std::vector拥有一个参数类型为int的显式构造函数及一个带有初始化列表的构造函数:vector&double& v1(7); // OK: v1有7个元素&br /&v1 = 9; & & & & // Err: 无法将int转换为vectorvector&double& v2 = 9; & &// Err: 无法将int转换为vectorvoid f(const vector&double&&);f(9); & & & & & & & // Err: 无法将int转换为vectorvector&double& v1{7}; & & // OK: v1有一个元素,其值为7.0v1 = {9}; & & & & & // OK: v1有一个元素,其值为9.0vector&double& v2 = {9}; &// OK: v2有一个元素,其值为9.0f({9}); &// OK: f函数将以列表{9}为参数被调用vector&vector&double&& vs = {& & vector&double&(10), // OK, 显式构造(10个元素,都是默认值0.0)& & vector&double&{10}, // OK:显式构造(1个元素,值为10.0)& & & & 10 & & & & &// Err :vector的构造函数是显式的};函数可以将initializer_list作为一个不可变的序列进行读取。例如:void f(initializer_list&int& args){& & for (auto p=args.begin(); p!=args.end(); ++p)& & & & cout && *p && &\n&;}仅具有一个std::initializer_list的单参数构造函数被称为初始化列表构造函数。标准库容器,string类型及正则表达式均具有初始化列表构造函数,以及(初始化列表)赋值函数等。初始化列表亦可作为一种“序列”以供“序列化for语句”使用。参考/C++11FAQ.html&https://www.chenlq.net/books/cpp11-faq点击”阅读原文“,了解详情CPP开发者(cppFans) 
 文章为作者独立观点,不代表微头条立场
的最新文章
本文首先提出平台相关代码造成的两个问题,然后针对这两个问题循序渐进依次提出解决方案,在分析了前两个方案弱点的基础上,最后着重介绍一种基于多种设计模式的 Linux 平台相关代码的解决方案,并给出此方案的 C++ 实现。这是 GNU grep 的原作者 Mike Haertel 在 FreeBSD 邮件列表中对 “GNU grep 为什么比 BSD grep 要快” 所做的回答,涉及到几个技巧。无锁哈希表(Lock-Free Hash Table )可以提高多线程下的性能表现,但是因为实现一个无锁哈希表本身的复杂度不小,在这里我将分享我实现的这个版本。我想与你分享一些最重要的技巧,它们可以帮助你推动你的生产力,提升你的总产量,而且可能最重要的,使你空闲出时间从事其它的活动。除多年编程经验之外和编程技巧,还有哪些事情是高级程序员都会去做的字符串匹配是计算机的基本任务之一。通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。类中函数的深度探索上一章讲过了关于类对象内存分布,下面是如何构建类对象,即构造函数的深入探索。在实际生产中,遇到一个复杂的类,如果能看出这个类的内存模型结构,那么以后的操作基本就没有难度的;所以说,学会分析一个类的内存模型,是每一个C++程序员必须要会的知识。从三个方面漫谈 C++良好的编程习惯与编程要点计算机主机网关的作用是什么?假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。我认为一名高效程序员可以扮演5种基本角色来高效地完成他/她的工作,这些角色以某种方式组合后更符合开发团队中的某些“人物”。你是其中的哪个(或哪些)角色?前几天在开发某些数据结构到文件的 Dump 和 Load 功能的时候, 遇到的一个 bug 。不积跬步,无以至千里。要想成为优秀程序员,光有一腔热血是不够的,一定要持之以恒,坚持不懈的持续学习。以此来与大家共勉。企业中,产品研发是一项综合性的工作,需要多个部门参与。但往往会出现各种各样的问题,如部门协作困难、全局监控难等,这困扰着大多数的企业。本文是一个真实的案例。在软件项目中,文档既是一项的重要成果,也是项目管 理的有力工具。通过文档,可以稳定、明确的传达信息,实现项目内的有效沟通。所以写文档对项目经理来说,是一项必备的技能。在 steven kobes 上发现一套很有趣的C语言测试题,如果你招聘C语言相关开发人员,或者正在学习C语言,很值得做一做。一些项目中的代码是明显不符合c++代码规范的,在逻辑上会存在使用未经初始化的指针的现象。变量的初始化应该尽量遵照c++标准或者手工初始化。针对class/struct类型,如果没有自定义默认构造函数,不同的new的用法会产生不同的结果这其实源于c/c++需要自己管理内存,而一个好的惯例是自己申请的内存要自己释放掉C++程序编译很慢,特别是大型工程,你都可以趁着编译的功夫喝杯咖啡。这里面既有天灾也有人祸。本文描述了一个最近包含在我的Range-v3库中的巧妙方法:一个具有精炼语法的类似Python切片的工具。从功能的角度来看,这并没有什么惊天动地的,但在库设计中,却是一个有趣的小案例,同时,它也很好地说明了我的库设计理念。随着C++ 11和C++ CX的引入,很多人重新燃起了对这门语言的兴趣。不少开发者,尤其是Windows开发者,都想知道是否应该放弃C#和Java,转而支持C++。John Sonmez认为这并不需要。白板编程可以检查出两方面的技能:
1. 从一开始就可以写简洁的代码,以及
2. 知其代码之所以然。
这两大技能对于一个出色的软件开发人员是至关重要的。通过进行白板编程,这两种技能都能被准确地检验出来。什么是矩阵?
在数学中,矩阵(Matrix)是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。
矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。一个例子记住C++对象的生存周期你可能不知道的 C++(二)此为《你可能不知道的 C++》的第一部分,讨论 C & C++,编译单元,及对象。Java的反射机制很酷, 只需知道类的名字就能够加载调用. 这个功能很实用, 想象一下, 用户只需指定类的名称, 就可以动态绑定类型, 而且只需通过字符串指定, 字符串的使用可以使得用户的修改只需修改一个配置文件就行在我的早期印象中,C++这门语言是软件工程发展过程中,出于对面向对象语言级支持不可或缺的情况下,一群曾经信誓旦旦想要用C统治宇宙的极客们妥协出来的一个高性能怪咖。C++ 中的基类与派生类很多年前我进入硅谷人才市场,当时是想找一份高级工程师的职位。《effective STL》中有句忠告,尽量用算法替代手写循环;查找少不了循环遍历,在这里总结下常用的STL查找算法C++11中对类(class)新增的特性C++11带来的优雅语法Facebook的总部位于美国加州的Menlo Park,这里曾经是Sun公司的驻地。在其入口处,一个“zan”的标志牌(“zan”就是一个竖大拇指的姿势)赫然树立。(点击上方公号,可快速关注)来自:快科技链接:/articles/(点击上方公号,可快速关注)译文: 伯乐在线 - 小谢英文:Jonathan链接:http://jonath面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦山重水复疑无路经过再次重构后的 create_chain_node 看上去要好了一些,但是依然有两段代码存在每一盒香烟的包装上都会写『吸烟有害健康』。白酒瓶上也写了『过度饮酒,有害健康』。本文的外包装上写的则是『阅读有害健康』,特别是『甩掉强迫症』那一节,它适合我自己阅读,但不一定适合你。(点击上方公号,可快速关注)来自:程序员的那些事严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写傅里叶变换像是一种数学棱镜——你输入一个波形并且将这种波形分解为不同成分——这些音符(正弦曲线)会相互叠加而形成新的重建波形。(点击上方公号,可快速关注)作者: menjitianya网址: http://www.cppblog.co虽然自己敲了4年多代码了,虽然一直交叉的敲着 C 和 c plus plus 两种语言,但是其实自己就是使用一下常用的语法。工作后又没有那么时间来看书,于是研究了一些C语言的细节来学习学习。12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!数学和编程有一种容易让人误解的联系。许多人认为在开始学习编程之前必须对数学很在行或者数学分数很高。但一个人为了编程的话,需要学习多少数学呢?实际上不需要很多。这篇文章中我会深入探讨编程中所需要的数学知识。你可能已经都知道了。C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了。可以想象,如果不加以重视,编译速度极有可能会成为开发过程中的一个瓶颈。那么,为什么C++它就编译的这么慢呢?成为优秀的开发人员,可以没有数学技能,但成为卓越的开发人员,不能没有。计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?cppFans关注 C 和 C++ 啦热门文章最新文章cppFans关注 C 和 C++ 啦}

我要回帖

更多关于 生源地代码不符合规范 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信