如何学习C语言

 我来答
匿名用户
2016-06-26
展开全部
回想一下,我去年的时候也和你是一样的状态吧,也有类似的疑惑,一年时间的成长,现在身在大二的我虽然谈不上很厉害吧,但是也算是走过了最初的那段迷惘吧,就分享一下自己的感受与经历吧,希望对以有帮助。

一:现在大一上学期应该只学一门专业课,除了数学与英语课之外,还是有很多的业余时间的,抽出一小部分去了解一些计算机的文化吧。举个例子吧,比如计算”机科学之父”,艾伦.图灵的生平啊什么的,了解一下他是如何以一个数学家的身份去首次提出图灵思想的,再比如他是如何创造性的提出“机器可以思考吗”这样子的论文而开创了AI的先河的。

这是说了一个人物的了解吧,再比如你可以去了解一下计算机的发展历史啊,比如第一台计算机是在1946年诞生于美国的宾夕法尼亚大学的;再或是去了解一下你们的C语言的发展史,等等等等,这些东西没有必要刻意的去看,兴趣来了偶尔去百度一下子,会开阔一下见识与思维的,而且还可以增加自己对相关领域的兴趣程度。
这些知识如果要系统的细看的话,可以去看<计算机导论>,或是<计算机科学概论>这两本书讲的是比较系统的,都是简单的提一下计算机科学体系吧,没有深入的讲解部分。

二:计算机科学知识的学习是最注重循序渐进的,注重基础的,万万不可跳跃性的学习,当然你是天才或是个别的话我只能膜拜了,至少我是一步一个脚印学过来的。我们不讨论哪一门语言才适合做大学计算机相关专业的第一门编程课的问题,我们是C语言,也听说很多学校都是以C语言为第一门编程语言对待的,我想大部分都是吧。那我们就把C语言尽自己的最大努力学好吧,有一些学弟学妹会问一些问题,自己不会敲代码怎么办?还有人会说能看懂别人写的代码,但是自己就是敲不出来。

这些问题我曾经也遇到过吧,首先要明确一个观念:C语言不难学,一点都不难学。这门课程不需要那么多的动脑筋的地方,就我感觉还没有数学难呢,当然这仅仅是一孔之见吧。入门一个语言最重要的是要选择一本好书,一本能够以最简单的描述来表达出基本知识的书,我想很多国内的首学C的人会选择谭老的C吧,我当时也不例外,因为毕竟是国人写的书,在问题描述与问题展开与循序讲解的过程中透漏的思考问题的方式都是符合国人思考方式的,所以易于理解吧,当然如果喜欢读外国的名著当然也是可以的,比如C之父的,这当然是传世经典之作了。
还要明确一个观念是:谭老的书仅仅是作为一个最基本语法的讲解书,看完谭老的书后确实会把很多语法细节学到,但是这也仅仅是语法,只能保证你会用这些语法了,你是知其然而不知其所以然。看完谭老的书后最好把这本书看看,而且更要仔细的看,这个时候有了基础后看起来会轻松一些的,会发现有很多原理性的讲解了,而且会有一些谭老书中讲不到的细节。看完了后会有一种小小的豁然开朗吧。
以上说的看书,过程应该是这样子的:看基本语法,看书上的例题,试着自己去敲一遍例题,即使你看懂了例题,但是让你合上书自己敲,我保证还是会出错的,肯定是某些地方理解的不够透彻,再看书,然后再敲,直到无误的敲出为止。慢慢的经过一段时间的坚持练习,会发现自己合上书后敲的时候错误越来越少了。然后是做课后的习题,最开始看懂例题去敲书后习题也是很难下手的,但是要尝试,第二次写习题就不会那么纠结了。编程容不得一点的掺假,必须要动手去敲代码,而且还要准确无误的敲出来。不可手写而不去上机验证。
还有就是培养一个习惯:先思考清楚问题,然后再去敲代码。因为我们敲代码仅仅是为了用程序设计语言把我们人的思维转换成了计算机可理解的方式了而已。有的同学会看完题目不思考就直接敲,发现总是会出一些错误,然后在那苦逼的各种改啊调试啊等等,这样子不是一个好的编程习惯。

三:认真的看书,做练习题,敲代码。这样子下来一个学期完全可以把C语言学好的,一般性的题目是没问题的。学习了程序设计语言后会发现我们的思维在慢慢的转变,我们思考问题的方式也在更加的严谨了,这是学习编程的结果。

如果有兴趣的话可以考虑进阶了,去学习,吧,这两本书会介绍很多在课程老师讲不到的,在一般性的书上看不到的。更多的是站在编译器的角度去看待代码,看待基本的语法了。比如编译器如何编译语言并生成可执行二进制文件的?这个编译的过程是怎样的?编译器又是如何奖产生的.exe文件交给CPU执行的?一个基本语法的规则背后肯定是和编译器的某一项工作原理是契合的,举个例子吧:大家都知道的函数中的普通变量是在函数的调用结束后悔自动销毁的,而我们在函数中定义的静态变量,也就是用static修饰的类型变量,他的内存空间在函数调用结束后是不会销毁的,这是为什么呢?这是因为编译器为我们的程序分配的内存进行了一个分类,把不同类型的变量分门别类的存储,这样子便于管理。至于变量内存空间销毁与否的区别就不在这细说了。当然两本进阶的书我是当时没有看,也是后面的学习中翻了翻的。

四:最后不得不说的是,还要把数学学好,这个好并不是要投入很多的精力在上面,但最起码你要能独立写得出习题,考试不要分太低吧。计算机科学还是很依赖数学的,毕竟图灵与冯诺依曼两位大师都是数学家出身呢。数学更多的是培养一个思考问题的方式吧,通过做一些习题是很锻炼自己对问题的认识与整体把握的。

学习更多C语言知识可以点击http://blog.sina.com.cn/cyuyanxuexi
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
每官酷628
2019-08-05 · TA获得超过165个赞
知道答主
回答量:209
采纳率:0%
帮助的人:12.8万
展开全部
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:
一是学习顺序
先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。
二是学习方法
人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。
最后强调一点,很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鲁新梅浑寿
2020-02-02 · TA获得超过3万个赞
知道大有可为答主
回答量:1万
采纳率:32%
帮助的人:527万
展开全部
你既然喜欢编程,就应该认认真真的学习一门语言,先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。
学习C语言,谭浩强的《C程序设计》是一部非常好的C语言书籍,学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。如果有一天你能熟练驾驭指针的操作了,我相信你,你一定能学习好C语言的。
我是2001年接触编程的,刚开始只是大概了解一下,并没有进行比较深入的学习,我是从VB开始入门的,学了1年多,然后转入C语言,按照C——C++——VC的顺序学习,C学了两年,现在开始学习C++,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间咯!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
接希荣留婉
2019-04-27 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:29%
帮助的人:836万
展开全部
我们在学习C++的时候,有很多人不知怎样学习它、怎样学好它,也不知应先从那里开始学起,关于C++的入门其实很简单,你只要一步步按照你手中的那本C++教材来学就可以了,也许你把C++学的很烂,这时你千万不要认为我好像很精通C++了。
我个人认为要想学习C++,最好直接学习它,不要先学习C语言,然后在学习C++,虽然C++是从C语言上发展过来的,但如果你对C语言了解的越多,在你写C++程序的时候,你很难摆脱C的风格,既使你是一位很有经验的程序员,如果你对C很了解,在学习C++的时候,尽量使用C++的风格,我这样并不是说C不好,关键我们现在要了解的是C++而不是C。
现在让我们深入学习C++吧!C++的难学,不仅在它那广博的语法、语法背后的语义、语义背后的深层思维、深层思维背后的对像模型;C++的难学,还在与它提供了四种不同的编程思维模型。当我们找来一本C++教材时,当我们翻开第一页时,这时我们已进入了C++的世界,我们现在开始探索,开始在追求新技术的旅程中!
想学好C++,熟练掌握它的语法是不可少的,当你掌握了C++的语法时,那么我要恭喜你,你已正正进入了C++的世界,要想学好C++,你只有努力的学习,经常的思考多多的实践,这时你会问了,我应该还要学习什么呢?
C++的语法我都已掌握了啊!我是不是可以学习Windows编程了呢?不要急,你是已掌握了C++的语法,但你能用它写出高效率的程序吗?你已对C++所有运行机制都了解吗?是的,单单了解C++语法是不够的,接下来你的任务很多,要学习如何高效地使用C++语言。现在我就教你怎样的学好它,怎样的高效使用它。
我们还是先从C++的语法开始说起吧!这里我只做一个简单的概述,当我们学习C++的时候,你先要了解它的编程模式,其中包括面向对像编程、通用编程和传统的过程化编程。当你在学习一个C++语法时,如果你一时感到很难理解,不妨你先跳过这一段,继续向后学习,当你看完你所学习C++的那本教材时,你在回过头来学习C++,你会发现其实它就是那么回事,有很多人在学习C++时,刚学习到了一半,突然感到好像以前学习的语法忘了许多,他们会把书又翻回去,找回那忘掉的语法,如果你在学习C++时也有这样的情况,你大可不必那么担心,你现在的任务是继续你的学习,不要去管那一时不记得的语法,如果你现在去重新学习那一时忘掉的C++,恩,不错,这看起来你好像对那语法已深深的牢记在心,当你的C++在学习到这里时,你能保证前面的语法不在遗忘吗?这时的你在学习新的C++语法时,但心会忘掉前面刚刚找回的C++,你说这时你能学好新的C++语法吗?你会一边学习新的,一边重复旧的,这样一来,那就糟了,这时的你会很容易搞乱新旧C++语法,新的记不住,旧的又被新的语法搞乱了,这时的你不得不从头再来(毕竟你是初学者)。
对于初学者来说,C++的广博语法是件头疼的事,学会了这个却忘了那个,就像我上面提到的那样,这时的你应该继续的学习C++新知识,等看完你手中的那本C++教材时,你在来学习忘掉的语法,这时你会感觉好像C++很简单,没有我们开始说的那么难学啊!你会觉得我开始说C++难学是用来吓唬人的。我说C++难学当然不是用来吓唬人的,这时的你对C++语法已非常熟悉了,这时你千万不要认为对C++已很精通,就像我开头所说的那样,虽然现在你已摆脱了初学着的称呼,但你也不能算是位精通人士啊!你只掌握了C++的大概,接下来的你就要深入学习拉!

我帮你转的答案,呵呵,希望能帮助你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伍初阳菅英
2019-02-15 · TA获得超过3万个赞
知道小有建树答主
回答量:1万
采纳率:27%
帮助的人:634万
展开全部
1、下载和安装编译器。
C语言需要通过编译器解释为计算机可以理解的机器码。
编译器通常是免费的,
不同的操作系统上一般使用不同的编译器。
对于Windows系统,
可以尝试
Microsoft
Visual
Studio
Express
或者MinGW。
对于Mac系统,
XCode是一款优秀的C语言编译器。
对于Linux,
gcc是一个不错的选择。
2、理解基本概念。
C语言是一门古老的语言,
但却十分强大。它最初是为Unix操作系统设计的,
但后来被移植到了几乎所有的操作系统上,并得到了很多扩展。C语言的现代版本是C++。
C语言本质上是由函数构成的,在函数体中你可以使用变量,条件语句,循环等语句来存储和处理数据。
3、查看一些基本的代码
下面是用C语言写的一段非常基本的代码,
阅读这些代码,尝试理解这种语言的不同部分是如何工作的,
并对程序的运作原理有初步的认识。
"
#include
<stdio.h>
int
main()
{
printf("Hello,
World!\n");
getchar();
return
0;}
"[1]
这里的#include
指令在程序开始之前就出现了,
它的功能是把包含有你需要的函数的库加载进来。
在这个例子中,引入stdio。h
使得我们能够使用
printf()

getchar()
这两个函数。
这里的
main()
指令会告诉编译器,程序需要运行一个叫做“main”的函数,该函数运行完毕后返回一个整数值。所有的C语言都要运行一个“main”函数。
{}
符号表示括号内的所有内容都是函数的一部分。在本例中,他们标记了所有的内容都是“main”函数的一部分。
printf()
函数能够将小括号中的内容显示在用户的屏幕上。双引号保证了这个字符完全按照字面的样子输出,
\n
组合告诉编译器这串字符输出完之后将光标移动到下一行

;
符号表示一行的结束。绝大部分C代码都以分号结束。
getchar()函数告诉编译器这段程序要等待一个按键的输入才能够继续。考虑到大部分编译器在运行完程序之后会立刻关掉程序窗口,这个功能还是很有用的,因为这样可以让程序保持运行直到有键被按下才会结束。
return
0
指令表示程序的结束。请注意”main”函数是一个int类型的函数,也就是说当函数结束时需要返回一个整数。如果返回0则表示程序正确的执行了,其他数字表示程序运行时发生了错误。
4、尝试编译这段程序
把上面的代码输入到你的代码编辑器中,然后保存为”*。c”文件。
用你的编译器编译它,
一般来说点击Build或Run按钮即可。
5、要养成写注释的习惯
注释是代码中的一部分,它不会被编译,
但是却可以告诉你代码做了些什么。这对于提醒你自己你的代码是干什么的以及让其他开发者理解你的代码都很有帮助。
在C语言中添加注释只需要把要注释的部分的前面添加/*,
后面添加
*/。
不要吝啬你的注释,除了特别简单明了的地方都尽量加上注释吧。
注释功能也可以快速的屏蔽一部分代码但不删除它们。只需要给你想要排除的代码用注释标签包起来它们就不会被编译。如果你想要改回来,去掉注释标签即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式