学好C语言需要一本百万字的书?看完这篇4千字的文章你就学会了!

简介: 喜欢这篇文章的朋友可以多多收藏、点赞、关注 一条龙~

1

C语言程序设计是我们的大学专业基础课,但是c语言自身却是1个十分强有力的工具,它是到迄今为止最为普遍应用的工具,并且在可以预知的未来,它依然是皈依为程序猿的人们内心的神器。这个工具作什么的呢?它在人与机器设备中间构建了1个沟通交流的平台。

That’s all, thank you!

学习c语言并不是一朝一夕的事情,但也不需要花费10年時间才能融会贯通。怎样以最小的代价学习并融会贯通c语言是本文的主题。请注意,就算是“最小的代价”,也绝不是啥近路,只是以最少的時间得到最多的收获,同时也代表你需要经历艰辛的过程。

一、要读就读好书,不然不如不读

所有新手入门遭遇的第一个问題便是:怎样挑选教科书。好的开始是成功的一半,挑选一本出色的教科书是事半功倍的首要条件。不幸的是,大学一般来说会帮你选定一本很很烂的c语言教科书;而幸運的是,你还可以再一次挑选。

谨记1个原则,不要读自己现阶段还不明白的书,那就是浪费人生。当你搞不懂,那你一定是缺少了一些必要基本知识。这时,你要仔细分析自身需要填补什么內容,随后再去图书店搜寻讲述的这些內容的图书。把基本知识填补完后再回头来学习,才会真正的事半功倍。

2

二、Unix/Linux还是Windows,这是个很大的问题

不一样的编程环境会创造出不一样思维方式的程序员。Windows的程序员大多数依靠集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习c语言,只需要会按几个基本的Visutal c++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基础知识。有些人或许觉得Unix的环境更简洁,但习惯的力量是挺大的,大家都很熟悉Windows的基本操作,而为了学习c语言去专门装一个Unix系统,似乎有点划不来。

对于1个只懂得Windows基本操作、连DOS是啥都不了解的初学者来说,尽早做某些有趣而有意义的事情才是最关键的。用c语言写1个小程序远比学习ls、cat等指令有意思,更何况我们要潜心于c语言自身,就不得不暂时忽视某些东西,比如编译链接的过程、Makefile的写法等等等等。

因此我建议新手应该以Visual c++ 6.0(不是Visualc++ .NET)或者Dev c++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual c++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev c++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的c语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。

成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。

3

三、万事俱备,你就是东风

书已选定,环境配置完成,正所谓万事俱备,只欠你自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。

学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。出了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为,比如p++和(p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的书上的例子以及改造之后的例子,还有自己“创造”的例子,都应该仔细地归类保存,并且要在源代码中写上简短的注释,阐述这个例子的意图。

例子之后就是习题了,我建议初学者把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。

程序应该怎样学,对C来讲,我觉得应该从画图学起。

原因有二:

一.画图程序很能振奋人心的,它能带给你浓厚的兴趣,这是学程序的关键。

二.画图程序容易上手,很简单的道理,就能做出很漂亮的东西来。有很多东西甚至不用看课本,就能自己推出来(我认为推理的方法很重要,它是你自学的必要条件)。

4

三.C语言的背景

就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。

C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下四点:

  1. 兼备高级语言与低级语言的优点,属于一种中间语言。
  2. 它是一种结构化程序设计语言,非常适合结构化程序设计。
  3. 有较丰富的数据类型、运算符以及函数供以选用。
  4. 直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。

5

四.二大语系两种不同的学习方法

笔者学习过很多程序语言,例如:C,C++(C语言的扩展),QBASIC,VB(BASIC的可视化),JAVA,J ,VB,JAVA,ASP,FOXPRO,PERL等等,就本人实践所得,其实高级程序语言分为两大语系。一路是以C为主的程序语言,例如:JAVA,JAVA等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC为首的程序语言,例如:FOXPRO,VB等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C语系是不同的。因此若是您以前是从QBASIC起家的,那么在学习C语言前最好是先洗洗脑,千万不要把学习BASIC的方法以及思路用在C身上。

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者有兴趣学习C/C++的伙伴可以加小编自己的学习群773649038,一起学习,一起进步,还有免费学习资料可以给各位伙伴

讲到这里,我想大家对C语言一定有了感性认识吧!下面让我们再升华一下,全方位亲密接触它。学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。

6

怎样才能学好c语言

有人问我c语言是不是很难学,我说不是,后来问的人多了,我就萌生了写一篇关于c语言如何入门的文章的念头来。

其实c语言很简单,它只是一种交流的规则,一种表达的工具,一种承载思想的容器而已,之所以感觉难,我觉得是还不习惯使用计算机特点来考虑问题。这就好比中国人从到英国定居一样,虽然你学过英语,但是那只是想象中的英国,和现实的英国的情况还相差很远,所以要有一个适应的过程,也就是常说的过渡期或磨合期。

想尽快上手就得掌握计算机的特点,计算机的特点包括:

  1. 计算机在问題的处理方式上要求全,将全部的可能都要告诉它。人还可以依据习惯忽视某些东西,但计算机不行。例如求解一元二次方程,我们考虑问题就已经默认了a不等于0,更有甚者把b方减4ac也默认大于等于零了。这是我们的习惯,既然有解,我们一般习惯上就把它定为实数解,所以你做出来的程序一般是不考虑这两个条件的,可是计算机不行,计算机是有名的智障。计算机没有象人一样的智能处理能力,它是人忠实的信徒,不管你怎么想,它都会执行你的命令。由于你的习惯,导致一些别有用心的人或者无意犯错的人来犯错误,致使计算机有时无所适从。很疲惫,甚至崩溃,报错,导致你的程序是不成功的,所以你感觉很难。
  2. 计算机要求程序的描述精确,无二义性。人的語言有极强的随机性和二义性。我们平常说话时,有时候是一些招呼,有时候说话的思维逻辑可以不太清晰,话既可以表述这样的意思,也可以表述那样的意思,人可以根据环境和对方想表述的含义进行分析,最终得到正确的结果,但是计算机很智障,虽然它很听话,但是他不能理解你表达的思想,只会按你交给的指令执行,这样导致执行时报警和出现异常。
  3. 计算机编程是要求有极强的全局性和逻辑性,不存在起伏的问題。人的思维有很强的活跃期和蛰伏期,计算机不会,它随时待命。人在考虑问题时,有很多尽兴的东西,但这不是处理问題的整体,而是一部分,所以就出现做完一段代码后,就不愿意再写,或感觉很吃力,所以感觉很难。

计算机要求它的主人,考虑问題要全面,任何可能的状况及正确处理都要告诉它,要求学着稳重,情绪要平稳,要求交流的语句一定要明了含义单一。

7

怎样才能很快的学会c语言,更快的度过磨合期呢?C语言的语法规则记忆理解当然是不可少的,除此之外还应注意以下几个方面:

  1. 好好理解一下变量和函数的概念,至少要重新回头看看初等数学。这是基础,否则就会先天不足,你学的再好,也成不了大气候。
  2. 平衡心态,虽然不能做到“不以物喜,不以己悲”的水平,但至少不要浮躁,不要急于求成,欲速则不达。
  3. 培养自身的全局意识,既能小无内,也能大无外,才行。
  4. 严格按照程序设计过程设计程序,不要跳脱,天马行空,没有规矩是不成方圆的。
  5. 努力提高自身的综合素质。程序是人思维的表达形式,是人处理问题思路和语言的结合体。你对客观看成到什么程度和你掌握的知识成正比。如果你对处理的问题不理解,不会处理,你怎么也写不出程序。
  6. 学会交流,多交流,相互补益,同时团队合作也是很重要的。

总之,实践出真知,多学、多练、多思、多交流,勤奋好学才能学成。

.

.

.

如有侵权,请联系删除

目录
相关文章
|
14天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
24 0
|
25天前
|
编译器 C语言 C++
【C语言】memset()函数(内存块初始化函数)
【C语言】memset()函数(内存块初始化函数)
26 0
|
25天前
|
编译器 C语言 C++
【C语言】memcpy()函数(内存块拷贝函数)
【C语言】memcpy()函数(内存块拷贝函数)
42 0
|
26天前
|
C语言 C++
【C语言】rand()函数(如何生成指定范围随机数)
【C语言】rand()函数(如何生成指定范围随机数)
16 0
|
1月前
|
C语言
在C语言中数组作为函数参数的应用与示例
在C语言中数组作为函数参数的应用与示例
15 0
|
1天前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
6 0
|
1天前
|
C语言 Windows
C语言中的fopen与fclose函数详解
C语言中的fopen与fclose函数详解
6 1
|
1天前
|
C语言
深入理解C语言中的printf函数及数据输出
深入理解C语言中的printf函数及数据输出
8 0
|
14天前
|
程序员 C语言 开发者
C语言库函数 — 字符串函数(含模拟实现字符串函数)
C语言库函数 — 字符串函数(含模拟实现字符串函数)
35 0
|
20天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现