【导语】下面小编给大家带来怎么才能正确快速的学习c语言(共10篇),希望能帮助到大家!

篇1:怎么才能正确快速的学习c语言
学习c语言的方法
首先,有一本入门书,看懂原理和程序分析。
推荐《C Pramer Plus》,简称CPP。
这本书是非常经典畅销的C语言参考书,适用于正在学习C语言的小伙伴,也是我们的窖头徐老师鼎力推荐的一版参考书。老九商城就有售哦,公众号回复商城即可。
其次,最重要的是敲代码。照着书上或者网上的例程,一个标点符号都不要错。自己去编译运行它。
这里不容错过的就是咱们的《零基础学编程系列之C语言》系列教程,理论加实践,能够为小伙伴们学习C语言提供非常大的帮助。
最后,和志同道合的小伙伴一起学习;与高手交流;在你能够自己解决问题之前,程序遇到错误时有师兄师姐能给你一些指导。
C语言的优点
1.简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富
C的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算,并引入了指针概念,使程序效率更高。
另外C语言具有强大的图形功能,支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格,程序设计自由度大
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此C既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
C语言的缺点
C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别。
C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
C语言指针
指针就是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因,就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。
C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性。
C语言程序的结构特点
一个C语言源程序可以由一个或多个源文件组成。
每个源文件可由一个或多个函数组成。
一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
篇2:如何才能正确有效学习c语言
有效学习c语言的建议
(一)编。
学习C语言,乃至学习所有的语言,都讲究一个动手——不是动手打人,而是动手编程序。你必须通过编写程序来熟悉知识、理解知识。倘若只学不编,只看别人的程序,自己不动手写,是不能从入门到精通的。要知道,在计算机界,只说不练的人很欠揍。试想一下,你在哪里辛辛苦苦的编程序,他却站在一边,如老板一样喋喋不休,对你提出这项意见,那项思路,甚至畅谈自己编程将会如何如何,好像很牛皮的样子,但就是不编一行代码。估计大家碰上如此之人,只会一个动作,那就是点击“踩”。
一个“编”字就可以学好C语言吗?真的如此简单吗?不是的,仅仅“编”是不够的,你还需要“我编”。
(二)我编。
请注意修辞,“我”编!这个“我”其实就是只“你”,也就是学习C语言的人。
大家在学习C语言时,要多编写程序,比如学习链表时,要自己编写链表程序,甚至自己编写俄罗斯方块等游戏程序来练习。不过有个前提条件,你必须自己编写这些所有的程序才有效果,如果你从网络上下载了某某源代码,或者拷贝了同学的程序,任何大言不惭的说是自己编写的,那么我也只能大言不惭的告诉你,这样做出了养成偷窃的习惯外,没有任何效果!
有同学会问,那么“亲自”编程序总可以精通C语言了吧,其实还差一点点,仅仅“编”是不够的,只是“我编”还不足以精通,为了达到C语言的最高峰,你还需要“我编编编”。
(三)我编编编。
“编”字重复三次,这里的“三”,代表多,意思是你必须多多的编写程序。亲自编写10行代码等于没有编,亲自编写1000行代码是远远不够的,亲自编写1万行代码还马马虎虎,亲自编写10万行代码,你绝对成为程序员中的战斗员。
乍一看10万行代码,估计有同学会先直挺挺的躺下去,然后又眼珠一转站了起来——他们想起了坏主意。“不就是10万行吗,容易!现在的编程工具都有代码生成功能,随便在VC中用鼠标拖曳几下,搞一个MFC窗口程序,系统就自动生成了几百行的代码。在搞几个三方控件,几千行代码就生成了!”
再次声明,“编编编”是有前缀的,那就是“我”,也就是学习者自己,使用代码自动生成工具产生的代码难道是“学习者”编写的?
要不上有政策,下有对策,“不用代码生成器,那么就抄,照着输入代码就行!”哎,人不能无耻到那种地步!这十万行代码要“你”亲自完成,亲自在脑海中发芽、生根,再亲自逐行输入。这又不是什么政绩任务,也不是什么形象工程,欺骗别人最终只能是自欺欺人。
有效学习c语言的建议
(1)保持好奇心
这是一个现实的问题,如果你是非计算机专业的大学生,大部分人对C语言是恐惧的,因为(挂科率高)你懂得……。而如果你是小学生或初中生,倒也不用担心,因为你们的勇气和好奇心都比大学生强大很多。当然,无论是谁,保持好奇心是你学习不断前进的永恒动力。
(2)掌握有效的学习方法
C语言是一门公认的不易入门的语言(否则也不会那么多大学生“惨叫”了^_^),因为涉及的内容比较多( 特别是语法繁多 )。从这么多年的教学实践来看,传统教学和学习存在一些问题。
目前,我们高校也在进行C语言教学方式的改革,概括起来几个阶段:
(a) 理解和体验阶段
阅读和理解现有的程序,一般是教材资料的程序,每个程序都必须亲手打一遍。在输入代码的同时,一定要了解每一个语句的意义和运算符号的意义。
(b) 修改阶段:
完成了第一阶段的学习后(一般2-4节课),开始根据给定的源代码进行简单的修改,这个阶段可以实现一点点自己的想法,同时也能将相关的语法掌握的更加熟练。
(c) 模仿阶段:
当我们可以进行简单修改代码后,可以尝试模仿现有程序的代码,编写自己的代码,比如,我们学会了求解梯形面积的程序后,我们可以编写求解三角形的面积。
此时的模仿,不仅仅是模仿代码结构,还需要模仿问题的分析方法,有数学问题,也有实际生活问题,这也是初步培养逻辑思维和计算思维的过程。
(d) 独立阅读代码阶段
在编写程序之前,阅读现有的程序,可以提高程序的理解能力,学会其他人编写程序的思想,也可以是同学的程序,找出同学程序的错误或不同写法,都是很好的学习编程的方式。
(e) 独立分析问题阶段
这个阶段和第4阶段同时进行,独立分析问题就是将现实的问题运用计算思维去解决,即通过问题分解、模块划分、算法设计和代码编写,最后调试程序。
C语言该怎样写
优化
-O2,-O3
通常想使用-O2,但有时也使用-O3。在两个级别下(通过编译器)分别进行测试并且保持最佳性能。
-Os
-Os如果你关注缓存效率(本该如此),这个选项能帮上你。
警告
-wall -Wextra -pedantic
最新版本的编译器支持-Wpedantic,但为了向后兼容其也接受古老的-pedantic。
在测试过程中,应该在所有的平台上都添加-Werror和-Wshadow。
因为不同的平台、编译器和库会发出不同警告,通过使用-Werror可更有针对性地部署生产资源。你或许并不想仅因为某个平台上从未见过的GCC版本在新的运行方式下时报错就毁掉用户的全部构建。
额外选择包括-Wstrict-overflow -fno-strict-aliasing。
要么指定-fno-strict-aliasing,要么就确保只以对象创建时的类型对其进行访问。因为许多C语言代码拥有跨类型的别名,当不能控制整个底层源代码树时,使用-fno-strict-aliasing是个不错的选择。
到目前为止,clang有时会对一些有效语法发出警告,所以需要添加-Wno-
missing-field-initializers。GCC在4.7.0版本后修正了这些不必要的警告。
构建
编译单元
构建C程序项目的最常见方式是将每个C源文件分解成目标文件,最后将所有目标文件链接到一起。这个过程在增量开发中表现很好,但从性能和优化角度看,并非最优。因为在这种方式下编译器不能检测出跨文件的潜在优化之处。
LTO——链接时优化
LTO通过使用中间表示方式对目标文件进行处理,因此解决了“跨编译单元源文件分析和优化问题”,所以source-aware优化可在链接时跨编译单元实现。
LTO明显减缓了链接过程,但make-j会有所帮助。
clang LTO
gcc LTO
到为止,clang和gcc都可通过在目标文件编译和最后库/程序链接时,向命令行选项中添加-flto来支持LTO。
不过LTO仍需监管。有时,程序中一些代码没有被直接使用,而是被附加的库使用了。因为LTO会在全局性链接时检测出没有使用或者不可访问的代码,也可能将其删除,所以这些代码将不会包含到最后的链接结果中。
架构
-march = native
允许编译器使用CPU完整的特性集。
再一次,性能测试和回归测试都非常重要(之后在多个编译器以及多个版本中对结果进行比较)以确保任何启用的优化都不会产生副作用。
如果你使用not-your-build-machine特性,-msse2和-msse4.2可能起到作用。
篇3:如何才能正确快速学习英语
很多观点都是借口
在书中,作者首先破除了学习外语的20种错误的观点,比如说年龄太大、没有天赋、没有时间,学习到一定程度来能练习对话等等。
本尼认为很多观点只是借口,他说:语言学习需要面对挑战,需要付出努力,因此,如果我们确信自己不行,那我们就已经失去了信心和热情,悲观主义情绪已经占了上风,我们已经注定学不好这种语言了。这里的学不好并没有什么原因,因为借口都是自己找的。
就像亨利·福特所说,不管你觉得自己行或不行,你都是对的。
冲劲是开始学习语言和不断进步的最主要推动力,摒除错误观点是清理心理障碍的第一步,不然还没开始学就被困难吓到了。所以说,树立正确的态度非常必要。
篇4:如何才能正确快速学习英语
制定行动计划
作者提出“流利”就是能准确、自如地使用某种语言对话,而不是外语要达到英语的水平。
如果你对流利的定义过于严格,认为必须达到母语水平,那既不现实也不公平。
成功的学习者总是将目标尽可能地具体化,要达到流利水平,需要制定行动计划:
①设定稍高的目标
给自己设定一个比目前水平稍高的目标,给自己一点压力。注意这个级别有哪些要求,而哪些要求是超越了这个级别的。
②设定具体的期限。
1个月、3个月、6个月都可以,确保这期间以学习语言为首要任务。
③设定迷你目标
作者在最初学习汉语的时候,就算他用上了书中的短语,其他人也听不懂,因为语调不对。
所以,作者的第一个迷你任务就是解决语调问题,而不关注其他诸如语法、词汇等问题。
一周后,其他人能听懂一些作者所说的话了,于是作者的迷你任务变成了学习基本词汇。
作者指出,迷你任务会给你一种真实的、辛苦得来的成就感和进步感。具体的行动计划可以满足你的特定语言学习需求,并帮助你应对眼前的挑战。
另外,倦怠是放弃语言学习的主要原因之一,所以在学习外语的同时,要保证休息时间。
篇5:如何才能正确快速学习英语
自创语言环境
学习语言的秘诀不在于买好的参考资料,或是使用昂贵的语言学习软件,而在于你必须去和其他人说话,真正地使用所学的语言。
是不是一定要出国才能有语言环境?
最开始本尼·刘易斯也是这么认为的,所以他在学习西班牙语的时候,特意跑去西班牙待了6个月。
结果6个月后还是什么都不会,因为在潜意识中他是这样想的:“我都已经在这儿了,不需要什么别的方法了!”
作者提出,能否取得语言学习的进步并不取决于在哪里学习,态度终能战胜纬度(以及经度,总体说来就是地点)。最主要的是能建立体验式的语言环境,和以所学语言为母语的人多接触,尽最大的努力不断练习、学习。
使用一门外语,首先要有一个交谈对象。可以在网络上结交外国朋友,使用网络社交平台。
作者说他用过最好的网站Couchsurfing.org,可以根据语种来选择聊天对象。还有InterNations.org、Meetup.com等网站,都是不错的选择。
此外,还可以参加线下的一些语言类的聚会,甚至是在街上、商场里与陌生人交谈。
除此之外,作者还分享了如何快速记住上千个单词、特定语言学习技巧、自如切换多种语言等方法,这是一本学习外语不可错过的好书。
篇6:怎么才能正确快速学习打字
快速学习打字的方法
一、首先你要很熟悉26个字母,这是小学三年级以上的学生就能干的事情,如果有困难就多加练习把。
二、熟悉指法。首先要熟悉指法,知道每根指头控制那几个键,如下图一所示。打字之前手指就要放在键盘上,拇指放在空格键上,食指分别放在F和J上,其他手指随着食指依次一个横排放好,每次打完都要回来原位,FJ键上有突起的标示,要找到它很容易。
三、练习指法。打开word等文字处理软件练习盲打,你要看着指法图练习把键盘上的键都能打完,不要看键盘打,打开指法图看着显示器上的指法图打即可,打错了重来,同时记住每个键的键位,坚持一两天就会见效了,关键是不要偷懒。
四、从常输入的文字入手。第三步的练习差不多后,手指能正确的按到键位上你就可以摆脱指法图了。每天从你要常用到的文字入手(比如你的名字、邮箱名等),坚持练习盲打,这样你很快就记得键位。
五、坚持聊天用盲打。在你聊qq时坚持用盲打,错了再重来,这样你的进步就会很快了。
六、使用打字软件。你可以从网上下载打字软件来练习,有些打字软件上的盲打练习有游戏版本,好玩又可以练习盲打,还是很有帮助。
打字学习前的准备
建立信心、保持毅力,假如以每天练习一个小时来算,要做到多数时候不看键盘打字,只需约两个星期的时间;如果要通过专业检定(每分钟30个字),最多也只需再多花半个月时间反覆练习。
许多人使用电脑的年龄可能已超过十年,英文打字速度却始终停留在每分钟十来字上下,而且需要一边看键盘,一边打字;因此打字对许多人而言是一件苦差事,因为他们没有学会真正的打字技巧。其实与其说没有学会,不如说没有机会学,因为在早期电脑被视为一种高科技产品,只有专业人士才「需要」学电脑、用电脑,所以在学校的技能教育里,并没有打字视为学生的必备技能来看待,以因此没有提供相关的训练课程。然而在短短十几年内,电脑已经变成一种家电产品,其普及率几乎已直电视、冰箱等家电,再加上网络时代的来临,电脑的使用更深入了人的生活,也因此在以往被视为专业技能的「打字」技巧,遂便成了电脑一项重要的基本技能。
良好的打字姿势及习惯
1. 上身保持正直。弯腰驼背益造成脊椎伤害。
2. 上臂轻靠身体,自然下垂。
3. 小臂伸出时与上臂约呈90度。必要时调整座椅高度及身体与键盘的距离。
4. 手肘应有支撑,不直悬空。
5. 手指自然弯曲,放松不可紧绷。
6. 打字时轻击键盘,不要过度用力。
7. 手腕与上臂尽量成一直线。长期外弯必造成累积性伤害。
8. 每隔一段时间要让双手休息一下子。
篇7:怎么才能快速学习韩国语言
学习韩语的方法
买一本对韩语有帮助的书
从书的章法开始学,再结合网上的教学视频,不要没见教材的学,这样没有目的性
做笔记,要每一个知识点都做笔记
要经常说,没事要自己多练习
多看韩剧,多学习韩国人说话的口气
要是有条件的可以到韩国旅游,来体验一下真正的韩国,真正的韩语
可以组建一个讨论组,里面都是以韩语交流,不懂的可以请教
也可以报韩语兴趣班,把基础打牢
学习韩语的建议
第一个月: 掌握发音(辅音/元音/收音)达标标准: 能大致读下来一小段文字就行。
第二个月: 掌握简单的语法(最最常见的语法)达标标准: 10~20个基本语法,了解韩语语法的结构。
第三个月: 猛攻日常用语/按需学习达标标准:前面的2个月其实就是为了第三个月学习口语时可以拼读和理解句子准备的。 这时候就得见人就说了。
说实话,这样速成的方法还是不太牢固的。不过我相信,还是持之以恒,脚踏实地的学习才是最有效的.至于准备打持久战的韩语学习者,希望您能系统学习,稳扎稳打。 貌似效率比较差,但基础牢固,但是我相信,只要你坚持1年2年就会看到希望的曙光.
学习韩语的技巧
第一阶段是“听”,每天学最少一个小时,最多三个小时。就行。第一:找很简单的 韩语 磁带。20-30分钟的(都是韩国语的)
每天听2个小时。注意!听的时候很注意听他们的发音。不要知道他们说话的意思。听的时候不要躺着,不要一边干别的事。很精神的时候听。这样可能的听四遍。一星期或两个星期内你们自己感到很大的变化。可以听得见一个一个的发音。听起来很舒服。到了这样的程度你学习已经成功了一半。语言不是学习。就是enjoy。花多长时间不太重要。每个人的语言感都不一样。
第二阶段:第二阶段的主要是“说”。很有趣。你过了第二阶段的时候有这样的变化,很想跟韩国人用韩语聊天。你已经听了两个磁带,其中选一个觉得比较容易的,然后开始听写。写的对不对不重要。写一个磁带。写好了。看着自己写的一边听一边跟着念。
注意!念的时候要大声,说跟磁带一样的声音,发音。比如磁带里有奶奶说话,你们也模仿奶奶的声音,和发音。怎么样?好玩吧?好像演员似的。
注意!听写的时候不要一个生词一个生词写。听一句话,然后写一个句子。这最多一个月的时间。每天两个小时。你过了第二阶段。会充满了自信。
第三阶段。那时你已经差不多征服了韩语。
第三阶段:这主要是“写”。大部分的中国学生开始学韩语的时候。开始写然后记最后才开始说。所以学得很无聊。没有进步。放弃。放弃以后再重新开始同样的错误。这样的错误从小学到现在我们接着反复。就是我们学了十年多的 英语 。现在也有决心重新学 英语 去报名 培训 班的朋友。
另外,第二阶段中写的那个听写本子。再拿出来看,开始查词典。最好韩韩辞典。为什么呢!韩韩词典就是用韩语解释。刚开始会有点难。可是解释的词语应该不难的。导师给我解释的时候用很简单的词语解释,跟这个一样的道理。可是你会不明白那个解释的词语。那么再查那个生词,这样反复。不必要那么长时间,因为5000-10000的生词里会反复。查然后写,写以后念。这样你已经自然学了韩语的语法。联系了写作。联系了念书。
花两个多月的时间后,会学好不少的韩语。有了一定基础后再较深入地学韩国文化(看电影,或看韩国报纸)
和学专用词。
想把韩语学好,第一要注意的掌握语言的节奏。语音和节奏一定要准确,否则你懂得再多的语法和 词汇 也没有用——不能达到和别人交流的目的。韩语没有语调,
首先你要先学习韩语的字母,基本的也就40个. 韩语是音读文字,用一两个星期把语音都学好了以后,就可以读出大部分的 单词 以及通读一些韩语文章,虽然有些你不懂是什么意思,然后学习一些很基本的语法, 就可以听懂韩语歌,然后看看韩语电影--电影难度比韩剧要低。
要想把韩语学好,建议分 3个阶段来学,把学习的难点分散开来。
第一阶段:学发音。初学者要以培养兴趣为主,所以这个阶段要做的是学会常用的词组,比如:家人、水果、时间、数字等基本表达,并掌握基本的实用会话。通过一年的学习,初学者可以掌握标准韩语的发音,并且可以进入“半自学”的状态。
第二阶段:学语法。在掌握了发音的基础上,就可以开始学习基本的语法,对常用的句型进行反复的练习,掌握能够满足基本要求的会话,并能够开始进行有目的的交流。
第三阶段:实际应用。这一阶段可以说是学习韩语的高级阶段,培养自己实景对话的能力,使韩语的实际应用能力得到提高。
篇8:怎么才能有效的学习c语言
有效学习c语言的方法
一、一字真言
各位看官,学好C语言,其实只需一个字,那就是“编”.
(一)遍。
学习C语言,乃至学习所有的语言,都讲究一个动手--不是动手打人,而是动手编程序。你必须通过编写程序来熟悉知识、理解知识。倘若只学不编,只看别人的程序,自己不动手写,是不能从入门到精通的。要知道,在计算机界,只说不练的人很欠揍。试想一下,你在哪里辛辛苦苦的编程序,他却站在一边,如老板一样喋喋不休,对你提出这项意见,那项思路,甚至畅谈自己编程将会如何如何,好像很牛皮的样子,但就是不编一行代码。估计大家碰上如此之人,只会一个动作,那就是点击“踩”.
一个“编”字就可以学好C语言吗?真的如此简单吗?不是的,仅仅“编”是不够的,你还需要“我编”.
(二)我编。
请注意修辞,“我”编!这个“我”其实就是只“你”,也就是学习C语言的人。
大家在学习C语言时,要多编写程序,比如学习链表时,要自己编写链表程序,甚至自己编写俄罗斯方块等游戏程序来练习。不过有个前提条件,你必须自己编写这些所有的程序才有效果,如果你从网络上下载了某某源代码,或者拷贝了同学的程序,任何大言不惭的说是自己编写的,那么我也只能大言不惭的告诉你,这样做出了养成偷窃的习惯外,没有任何效果!
有同学会问,那么“亲自”编程序总可以精通C语言了吧,其实还差一点点,仅仅“编”是不够的,只是“我编”还不足以精通,为了达到C语言的最高峰,你还需要“我编编编”.
(三)我编编编。
“编”字重复三次,这里的“三”,代表多,意思是你必须多多的编写程序。亲自编写10行代码等于没有编,亲自编写1000行代码是远远不够的,亲自编写1万行代码还马马虎虎,亲自编写10万行代码,你绝对成为程序员中的战斗员。
乍一看10万行代码,估计有同学会先直挺挺的躺下去,然后又眼珠一转站了起来--他们想起了坏主意。“不就是10万行吗,容易!现在的编程工具都有代码生成功能,随便在VC中用鼠标拖曳几下,搞一个MFC窗口程序,系统就自动生成了几百行的代码。在搞几个三方控件,几千行代码就生成了!”
再次声明,“编编编”是有前缀的,那就是“我”,也就是学习者自己,使用代码自动生成工具产生的代码难道是“学习者”编写的?
要不上有政策,下有对策,“不用代码生成器,那么就抄,照着输入代码就行!”哎,人不能无耻到那种地步!这十万行代码要“你”亲自完成,亲自在脑海中发芽、生根,再亲自逐行输入。这又不是什么政绩任务,也不是什么形象工程,欺骗别人最终只能是自欺欺人。
二、两种态度
一般人提起C语言,常常一个字如影随形涌上心头,那就是“难”!害怕啊,C语言真是太恐怖了,传说中的指针真是太锋利了,一不留神就把系统划破,搞出几个死机重启都是太正常不过了。
其实没有必要这么担心,本朝太祖曾经说过:“在战略上藐视敌人,在战术上重视敌人。”
(一)战略上藐视C语言
其实,C语言也就是一个普通的语言而已,别把它想象的太难!与Java相比,C语言也只是程序复杂一点、代码冗长一点、库函数少上一点、三方控件难学一点,编译工具简陋一点、指针麻烦一点,其他的都差不了多少,程序设计思想总是一样、程序构建总是相同的、程序语法总是类似的、程序逻辑总是差不多的。
没有必要对C语言谈虎色变,把他当成一门普通的语言就行了。要知道,就算C语言再难,总比汇编语言容易掌握、比机器语言容易记忆、比英语容易掌握。所以要自信!一切C语言都是纸老虎。
(二)战术上重视C语言
虽然我们在C语言面前保持了激昂的斗志,虽然我们无所畏惧。但是真正在学习得过程中,还是务必保持谦虚谨慎的态度,戒骄戒躁,不要因为搞了一两个俄罗斯方块游戏程序就洋洋自得,以为老子天下第一,甚至只遍了10行代码,就到CSDN博客中到处骂人,到处“踩”人的帖子。要知道,“雄关漫道真如铁,而今迈步从头越”,无论你学了多少,只要还没有走上工作岗位,那么万里长征就只是才迈出了第一步,还有很长的道路等待着你。
三、三个框架
学习C语言,“编”不是问题,问题是“编什么”、“怎么编”、“编多深”,下面就来解决这些问题。
(一)静心不静
1、静心。
学习的过程,是一个漫长而枯燥的过程,学习者必须要有吃苦耐劳的准备,静下心来,从大家的视觉中消失,经受一个长时间的编程学生过程。吃尽苦中苦,方成人上人!等你重新回到大家的视野时,你会有一个蜕变,那时一切的痛苦都将化为甘甜。
温瑞安先生有一部武侠小说,叫做《请借夫人一用》,我们这里也借用一下。当然不是借用别人的女朋友,而是了解一下主人翁的学习历程。主人翁韦青青青出场时浑然是一个高手,他把一千零一招的功夫柔和在一招之中,但是在其出场之前,江湖上没有人知道韦青青青这一号人物,因为他正在十年如一日的专心练功,正是这种练功时的不为人知,才造就了了日后的温瑞安小说高手。
不谈武侠,来个IT版的例子。在遥远的大洋彼岸,在微软的IE横行之前,在互联网刚刚起步之时,有一个叫做“网景”的浏览器占据了市场99%的份额,网景公司在当时的美国更是比易中天还如日中天。可是,大家知道这个“网景”浏览器是谁开发的吗?是一个学生,他在大学中不显山不漏水,别的同学每天考虑着泡MM,他却每天除了上课就是泡机房,是上也泡,下也泡,终于泡出了浏览器。
所以说,静下心来,无论其他同学在多么兴奋的展示他们的某某系统,他们的某某网站,既然你选择了学习C语言,那么以韦青青青为榜样吧,总有一天,你会一举成名天下知的。
2、不静
学习C语言,务必不可以急躁,务必一步一个脚印,此乃静心。但是,学习C语言,也不可以太过沉默,一个人呆在机房里闭门造车妄想着创造出某个绝世程序然后成为中国的比尔盖茨是不可能的。
学习靠自己,所以大部分时候我们需要自己思考、闭关修炼。但是一个人的力量终究是有限的,很多时候我们需要借助外力。比如不懂的地方咨询老师,不明白的地方可以与同学相互讨论等等,都是可以的。
有很多同学,学习时碰上困难,遇上了麻烦,于是自己冥思苦想--这是对的--还是得不到结果,于是故意回避不闻不问--这是自欺欺人。有同学说,那是因为无人可问,问老师,貌似大学老师总是神龙见头不见尾,根本找不到;问网络大虾,网络大虾们经常不在线,就算在线,面对洋洋洒洒的留言也视而不见,更别提回复了;问同学,别提了太丢面子!大家同学而已,为什么要问他,问他岂不是说明自己低人一等吗,不问!
其实,大学之中同学之间相互讨论是最可行的一种做法,毕竟一个王重阳没有时间指点全真七子,网络大虾比投名状中的兄弟还不可靠,所以除了自己多思考就是同学之间多讨论了。不要担心问问题会低人一等,老祖宗有一句话叫做“不耻下问”,虽然你的水平比我低上一点点,但是,我不觉得向不如自己的问提问是耻辱。多好的阿Q精神啊,用这点!
只有静心,才可以更好的学到知识;只有不静心,才可以更快的学到知识。
(二)深入不深
1、深入
学好C语言,就一定不能浮躁,要深入的学习知识。
其实,以上的话就极其浮躁,极其不深入。谁不知道要深入学习啊,但是你的告诉大家,到底什么内容属于深入学习的内容。
其实,浮躁就是学习知识就是浮于表面,没有深入理解专业知识。表现在编程上就是只想编写一些所谓漂亮的、能够拿得出手的程序,而对于一些底层的支持程序置之不理。
有的同学喜欢编写一些漂亮的程序,比如设计漂亮的网页,使用某某工具开发某某'大型'系统等等,当然这都是人之常情。正如鲁迅先生所说,文章写出来总是希望拥有更多的读者,除非是写给恋人的。程序编出来,总是希望拥有更多用户,除非是专门为爱人开发的。但问题是,只编写这类程序是不够的,是有缺陷的。
这些所谓的程序,往往只需要对知识应用,并不需要刨根究底研究知识的本身,甚至有很多加入了很多相当专业的内容,并不适合于初学者学习。比如VC中的MFC就是一个典型的误导初学者的工具。利用MFC可以很方便的编写出DIAG界面程序或者视图文档程序,从表面上看风光无限,但对初学者却祸害无穷!假如使用VC学习C++,大部分时间将用于消息的处理,控件的处理,还要阅读大量的视图文档结构类库说明,这些操作将耗费了你大量的时间,得不偿失。而且VC++的大部分编程是在某些位置插入代码,至于C++部分系统自动实现了,留给你的是纯C语言操作。同学请注意,你学习的是C++,不是VC类库,也不是VC操作!
比如使用数据结构,就必须自己编写有关链表、队列和栈等内容,你是在学习,又不是工作,当然得用自己编写的东西呢。
又比如说C语言的内存分配函数,就是那个malloc和free.一般人直接调用就行了,但是计算机专业的学生不应该止步于此,而应该思考这两个函数的系统实现方法,并且编程序模拟内存分配和释放。设计这样的程序,不但可以增强动手能力,还可以加深对计算机知识的理解,一举多得,何乐而不为。
2、不深
深入学习C语言是极其应该的,但是大家也必须有所侧重,不能胡子眉毛一把抓,所有的东西统统深入,具体表现在两个方面:
其一、一些知识范围不可过于深入。
有一些知识,属于偏僻的内容,既不是基础,日后工作中也很难碰上,而且还极度困难,像这样的东西,了解即可,完全没有必要深入。比如说某同学心血来潮,要编写一个漂亮的输入法软件,于是苦心学习了有关输入法的所有知识,还妄图气死清华紫光,饿死搜狗拼音,于是仔细研究输入法的犄角旮旯。其实这些知识均相当偏僻,了解即可,完全没有必要打破沙锅问到底。
其二、一些界面或者不必要的功能不可过于深入。
大家编写的程序,往往伴随大量的交互式界面设计。事实上,编程有个二八原则,即编写80%的核心内容将耗费你20%的时间,而另外20%的功能将耗费你80%的时间。实际上,作为C语言学习,深入编写好那80%的核心功能就可以了,耗费80%的时间去深入完善那些20%的功能,得不偿失!
所以,练习用的程序,最好是一些基础的、底层的实现,不要有太多花俏的图像和交互式操作。当然也可以设计一些简单的具备图形界面的小游戏,但此时你应该将精力更多注重于游戏本身的设计,而不是游戏的画面风格和动画效果上。
学习C语言,有所为有所不为。
(三)枯燥不枯
1、枯燥
学海无涯苦作舟,学习当然是一个枯燥的过程。用语言设计程序,表面上程序漂漂亮亮风光无限,其实风光的背后是黑漆漆的屏幕和冗长的代码。程序员是把美丽献给别人,把枯燥留给自己的职业。
所以,学习C语言,就必须多设计一些枯燥的、无趣的实例。当flash程序员在展示图片时,C语言程序员要去学习空洞的0和1的图片格式;当Java程序员设计网站时,C程序员要去理解抽象的HTTP协议;当。net程序员使用对象托管时,C程序员总是要考虑内存的申请与释放;当C++程序员在欢乐的使用STL库时,C程序员必须自己搭建所有的数据结构。
在C语言的学习路上,绝对没有学习其他语言那么多鲜花,这是每一个C语言爱好者必须接受的事实。
2、不枯
其实,人都是需要动力的,凭什么别的程序员可以通过漂亮的程序享受MM的崇敬和同学的赞叹,而C语言程序员就只能在0和1的世界中与电脑沟通。其实,学习C语言的过程完全可以是快乐的。
大家在基础内容了解的差不多时,完全可以循序渐进设计一些简单的趣味游戏程序,从贪吃蛇到俄罗斯方块,从搞怪碰碰球到连连看,从扫雷到雷电,甚至还可以是植物大战僵尸和愤怒的小鸟,编写一些在界面上简化的趣味游戏程序来,同意可以激起自己的兴趣并获取老师、同学尤其是MM的阵阵掌声。
枯燥,是因为学习并非玩耍。不枯,是因为要像玩耍一样的学习。
学习c语言的注意事项
(一)错误观点:C语言低人一等
由于C语言常常应用于一些服务器程序,没有漂亮的界面,在一些同学的心目中,C语言程序员就成了IT民工的代名词。类似于煤矿工人,整天生活在地底下。而那些Java程序员,.net程序员则成了白领丽人。
(二)错误观点:C语言高人一等
与第一种情况相反,一部分同学则认为C语言才是语言正统。俗话说:真正的程序员用C,聪明的程序员用delphi.那么其他的语言统统是神马牌浮云,不值一提。其他的程序员,无论聪明也好,愚蠢也罢,都是盗版水货。
(三)错误观点:C语言是忠贞情人。
弱水三千,只取一瓢。有人在爱情上的忠贞,有人去在语言上忠贞,有人如斯内普般一生只爱一个女人,有人欲效仿之,一生只使用一种语言。
正如人生而平等一样,其实,语言也没有高低贵贱之分,只有适合于不适合之分。Java适合做WEB开发,C语言适合服务器,C++适合做游戏,等等。真正的程序员,不是只使用C语言的人,而是到什么山唱什么歌。任何语言、任何数据库、任何操作系统对他来说都只是工具,呼之能来、来之能战、战之能胜、挥之能去。当JQuery方便时,我不直接用JavaScript;当速度优先时,我不用Java;当稳定优先时,我不用Windows.总之,倚天剑也好,屠龙刀也罢,统统是工具,为我所用,为我所奴役。
(四)光说不练假把式
学习C语言的真言是“编”,但是也有同学会反驳,“这么简单的程序,也需要我亲自编写吗?”、“这个程序我看一眼就知道怎么做了”、“跳过这个程序,直接编写后面的程序”、“不要把天才浪费在这种小程序上”等等之类的言论不绝于耳。
C语言的发展历史
C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。
1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个“Space Travel”,一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。
C++语言代码
在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。C89在1990年被国际标准组织ISO(International Organization for Standardization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:,简称“C99”。在12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: ,简称为“C11”。
篇9:如何才能正确快速的学习编程
快速的学习编程的方法
一、不断练习
每天都要敲代码
花大量的时间对于掌握一门语言是最重要的。即便是像Python这样的简单语言,它可能也要画上一两天去了解它的基本语法,花大量的时间才能真正精通。想任何其他的技巧一样,练习是变得更加娴熟的关键。尽量每天都要花一些时间去敲代码,即便是在工作之后和晚餐之前的一小时。
给你的程序设定目标
通过设定能够实现但又有挑战性的目标,你将能够开始解决问题并拿解决方案。尝试着去设想去一个基本的应用程序,比如一个计算器,然后想办法去做出来。使用你一直学习的语法和概念,然后将它们应用到实际中。
和别人交流并且阅读他人的程序
有很多编程社区致力于特定的语言或学科。找到并参与到这些社区会为你的学习创造奇迹。你将会获得能够帮助你的学习过程的各式各样的示例代码和工具。通过阅读他人的程序代码不仅可以激励你,还可以帮助你回忆那些还没有掌握的概念。
为你所选择的编程语言找到论坛或在线社区。确保自己是真正参与进去而不是不断地问问题。这些社区往往看着做协作和讨论的地方,而不仅仅是简单的提问-回答问题。请随时寻求帮助,但要准备好你的程序以及尝试用不同的途径。
一旦你已经有了一些经验,可以参加一些编程的活动。这些活动是个人或团队争分夺秒的开发功能的程序,通常会围绕一个特定的主题。这些事情都很好玩并且是一个认识其他程序员的很好的方式。
挑战自己并保持乐趣
去尝试着做一些你现在还不知道怎么做的事情。研究该怎样完成这个任务的方式,并且不断的将它们添加到你的程序中。一定要尽量避免勉强能运行的程序,你应该让各个方面都很完美。
二、分享你的知识
参加一些培训课程
许多的大学、社区学院、社区中心都提供了你可以参加的编程课程和工作室,而无需在学校注册。这里对于新手程序员是很有裨益的,因为你可以从其他有经验的程序员那里得到帮助,或者你也可以通过网络和其他地方的程序员一起交流。
买或者借一本书
有成千上万种你所能想象出的所有语言的教学书籍。虽然你的知识不应该全然来自一本书,但它们会给你提供许多的参考,而且往往内涵了大量友好的示例。
学习数学和逻辑
大多编程都涉及了基本的算术运算,但可能你想要学习更先进的概念。如果你想写出复杂的模拟或者算法级别程序,这将是非常重要的。对于大多数日常编程而言,你并不需要太多先进的数学知识。但学习逻辑,尤其是计算机逻辑,将能帮助你理解处理更先进程序的复杂问题的最好方式。
永远不要停止编程
有一个流行的理论,成为一名专家至少需要10000小时的练习。虽然这个理论还处于辩论中,但它内含的原则永远是正确的:精通需要时间和奉献精神。不要指望一夜之间你就能学会一切,但如果你保持专注,并且不断的学习,很快你就会成为你的领域里的专家。
快速的学习编程的技巧
“快速”
对于“如何快速学习编程”这个问题,其实我真的不知道何谓“快速”。我觉得,通过遵循以下建议,你将很快地学习编程(至少你的成长/进步会快)。但你真的不应该眼中只有“快速”。只追求速度反而会拖你的后腿,让你自食其果。“快速”学习的唯一可持续方法或许是采用浸泡式教学法。找到一种方法让自己沉浸在编程中很长一段时间(几个月?)。为了让它奏效,你需要不断推动自己去学习新的东西,并迅速抽身离开。这是编码训练营的一个优点。当你出来时,尽管你还不是专家,但你会学得更快。这也可以通过专门的导师教导或与专门的初学者一起学习来实现。
读>写代码>读>写代码(日复一日)
关于如何高效学习编程我要给出的第一条建议是在阅读代码和编写代码之间循环往复。阅读代码(书籍,博客文章,开源代码)将帮助你查看解决方案,了解最佳做法,并大致了解语言或系统。但是在你这样做之后,你需要自己实际去写代码。可以是任何东西。可以是小的编码练习或业余项目,但确保你能将之付诸于实践,并用某种方式使用你学到的东西。如果你不这样做,那么你会发现自己面对编辑器会无所适从无从下手。
这方面的诀窍是让自己感到不舒服。这是相当痛苦的,但就应该这样。编码遵循80/20规则。花80%的时间在20%的代码或20%你所学的东西上。习惯于这种不舒服的感觉并克服它是关键。
这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。
我推荐阅读关于通用编程主题的网站是lobste.rs。上面有许多关于许多编程主题的文章。另一个好的网站是Hacker News,但网站时常偏离话题。
不要陷入僵局。请求帮忙
我最大的错误是在学习编程陷入僵局的时候用了太长时间。在被卡住时,我会花很多时间在一些愚蠢的东西或一些我根本上不明白的东西上。有时候我需要花费好几天时间才能完成这些工作,而原本我可以用这些时间做更多的事情和学习更多的东西,如果我能找到更好的解决方法的话。卡在一个东西上面超过一个小时基本上就是在浪费时间了。
我推荐三件事情以避免僵局。第一是试着总是阅读更多关于你使用的技术,并总体掌握正在发生什么。通常,当你陷入困境时,意味着你对需要澄清的事情做出了不正确的假设。第二是咨询互联网。这一点很显然,但依然值得一提。在网上查找并询问有过这个问题的人是一个非常重要的技能。Stackoverflow可以说是互联网上最好的网站。不要害怕在那里问自己的问题。通常,只要尽力正确地阐述你的问题就OK了。我真的希望以前我能多问些问题,但总是因为害怕会显得愚蠢而止步。我的第三个建议是向你认识的人请求帮助。通常,你或许已经理解了技术,而且有了问题,但是你可能需要更高层次的上下文才能真正解开谜团。不要胆怯,大着胆子上前去问吧。
例如,当学习Docker时,我花费了大量的时间从头开始重新构建图像。我从根本上不明白docker缓存,并用20分钟时间来等待单个更改到Dockerfile通过。我可能花了8个小时就用在等待构建上。如果我读过更多关于Docker或问一个知道的人,那么可能我早就搞明白了,还可以在更短的时间内学到更多。
为项目而工作
在我的经验中,没有什么可以与工作于自己的项目以学习编程更有用的了。除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。有了一个点子并试图实现这个点子是非常具有挑战性的。它需要很强的自律心。但是,通过尝试实际做一件事情,你可以学到如何分解问题并应用技术。你面对的各种问题,以及你如何解决它们才真正是所谓的编程。知道编程语言的每一个古怪细节的确是有帮助的,但它只会让你越来越落伍。此外,想要完成项目的驱动力是继续学习的动力。从业余项目获得的满足感远远超过你在抽象中学习东西的满足感。
我对于选择业余项目的建议是,选择你感兴趣同时你也有想法如何实现的东西。能够在开始之前表达实现总是有助于保持我的动力。在此旅途之中你一定会学到很多!
快速的学习编程的建议
1,主动学习,我对要学习的编程语言充满了好奇与兴趣,并对它发自内心的热爱。不管怎样,要确保你自己是主动来学习的。有时候,压力的确可以促进学习,但是它不可以持续很长时间也不可以使你快速掌握该语言。
2,明白我要学习什么--我没有老师,没有练习资料,也没有考试,但是我可以测试我自己来看自己有没有理解正在学习的内容。我知道在新的领域,有很多限制,所以我在笔记本上写下了一些问题,在以后再回答他们(一般都是几个小时后)。你会发现记笔记,进行网络搜索,尽可能的收集参考书等对你的学习是非常有帮助的。
3,迁移知识--因为我是一个非常有经验的软件工程师,我可以迁移老知识来帮助我理解新的语言。在大多数情况下,都可以行的通,尤其对算法和理念屡试不爽。但是有些情况,知识迁移是错的,我必须做一个“迁移->测试(代码)->理解”的检查。
篇10:如何才能系统有效学习c语言开发
第一步、验证性练习
在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法。
第二步、照葫芦画瓢
在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。
第三步、不看教材输入并运行程序
不看教材看是否能将前两步的程序进行正确地输入并运行。
在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。
第四步、增强程序的调试能力
按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。
注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!
注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免再编程犯同样的错误,切记!!!!。
第五步、研究典型程序,提高设计能力
经过上述过程的学习,我们已经学会了C语言各种语句的流程(即计算机是如何执行这些语 句的过程),然后就可以研读别人编写C语言经典程序,看懂别人是如何解决问题的,学习解决问题的方法和程序设计技巧,提高自己的程序设计能力。
第六步、研究课程设计源程序
研究课程设计源成序,提高C语言程序设计能力和调试较大程序的能力。
C语言课程设计的目的:是让学生综合利用所学的C语言知识,解决一些接近实际问题题目,提高程序设计和调试较大程序的能力,为进一步进行软件开发打下坚实的基础。
文档为doc格式