c语言怎么学


推荐于 · TA获得超过1028个赞

很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言? 我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C语言如此重要呢? 第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,上的专栏Programming Pointer,里面文章很有深度,值得一读。

    本页容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

学习一门编程语言,首先要弄清楚一些基本的概念和认知。

通俗点讲,编程就是跟计算机对话,让计算机按照我们的描述去执行任务。因为计算机不能直接听懂我们人类的语言,所以我们需要一种计算机能听懂的编程语言来跟它交流。编程语言其实跟我们人类的语言有很多相似之处,但是它更强调逻辑性,是我们跟计算机协商好的一组协议。 

“小明,帮我在这张纸上画一条直线,好吗?”

以上三个比较,貌似跟计算机打交道比较简洁啊,而且绝对听话,只要你的命令它能办到,绝不会有半句怨言,实在呀。(哈哈,生活需要幽默,编程也同样需要。)

先问你另一个问题,为什么要学英语呀? 

可能你会说,学了英语可以跟外国人交流呀,读一些原版书籍,了解西方文化等等好处。

编程也是一样的,它也是一个工具,是我们跟计算机世界交流的工具,计算机有超强的计算能力和记忆力,这正是我们人类的短板。

当我们把人类擅长的想象能力和创新能力,与计算机相结合,互补优势,就可以创造出一些提升我们生活和工作效率的作品。

新东方李笑来老师的《21天突破TOEFL核心词汇》就是通过运用程序统计出来词频,然后整理得来的,如果你有类似的好想法,编程绝对是你提高效率的一个利器

学习编程不但可以让我们创作出高效的工具,同时也是锻炼自己大脑的一次绝佳机会。至少可以提高一下几个能力:

3、学习C语言编程可以做什么?

a、可以做个小游戏,自己玩自己设计的程序,爽!

b、可以把自己的一些想法通过程序实现了,提高效率,或者干脆只为了好玩。

c、Linux、Windows、Android、iOS等主流的操作系统核心都是由C语言开发的,C语言是底层的语言,执行效率高,跟硬件很近,学完后可以玩下单片机或者其它嵌入式的产品编程。

d、学会了C语言,再学其它语言,就会感觉 so easy! 

再次掌握一些必要的概念:

编程入门,需要掌握的最少必要概念

掌握清晰必要的概念是我们快速入门一个新领域必要的步骤,编程是一项严肃的事情,我们是认真的哈。

1、给大家介绍几个必要的概念

编辑:这个就不多说啦,就是像写world文件一样,把代码写进编辑器就是编辑啦!

编译:就是把我们人类编写的代码,转化成计算机能识别的二进制语言,即0和1组成的机器码,因为计算机最终能识别的就只有二进制语言。

源代码/源程序: 我们人类编辑好的代码,且没有经过编译的,就是源代码或者源程序,我们人类是可以看懂的(当然要学会编程以后了)

调试:有时候我们程序运行的结果偏离了我们的预期,我们需要分步来检查是哪里出了问题,就像一台罢工的机器,需要调试找出毛病,然后修改好。

链接:我们程序有时候会根据功能的不同由几个模块组成,当我们把程序编译好以后,这些二进制的模块,需要链接起来,才会达到我们预期的效果,当然我们可以通过集成开发环境 IDE 来完成,而不必手动去链接各个模块。

IDE:中文叫集成开发环境,就是将代码编辑器、编译器、调试器和图形用户界面等工具整合到一个可视化的软件中,方便我们开发编程使用。

执行:这个也好理解,就是编辑、编译、链接、以后,让程序真正运行起来就叫程序的执行。

内存:望文生义,就是计算机内部的存储空间,程序运行中一些数据都存储在内存中,断电后会消失,但内存拥有非常快的读取和写入的速度。对比“外存”,也就是硬盘,硬盘断电不消失,但存储速度相对较慢。所以内存是用来给CPU使用的,满足CPU快速读取数据。

2、介绍一下一个应用程序生产的流程和组成

一个C程序产生的(粗略)流程:

(1) 构思和设计程序的功能

一个C程序的(粗略)组成:

包括条件判断、数学计算、流程控制、数据结构、变量、常量等。

包括,键盘控制、鼠标控制

(3) 视觉、听觉呈现

图形和图片的展示,视频、flash的播放,歌曲等声音的播放

数据的查询、新建、修改、删除

掌握了以上必要的概念后,我们就可以大胆的进行下一站的学习喽,学习是一件投资回报率贼高的事情,很高兴我们已经走在学习的路上,大家一起撸起袖子学起来喽!

微信公众号:《肖申克之自由鸟》

1、首先准备一台PC,学编程一般对PC没有太大的要求,一般主流的配置就好。
2、有了电脑之后,就得考虑安装什么操作系统了,主流使用的操作系统是windows,不过在这里不建议学习C编程使用windows,建议使用Linux。所以学习者最好安装双系统,或者彻底习惯Linux系统。
3、不管学习哪门编程语言,我都建议学习者必须有一本关于此语言的全面知识的书籍,大一般采用的是谭浩强老师的《C语言程序设计》,还有
《C语言C++学习指南》从入门到精通(语法篇)视频课程在线学习等,建议学习者可以去仔细研读。
4、在平时学习看书的时候,一定有学会做笔记的习惯,而且不仅要记录,还要经常看自己所做的笔记,这样才会有较好的学习效率。
5、多逛技术论坛或者技术问答社区,想别人分享自己的代码,有要积极去阅读别人的代码,互相取长补短。
6、在C语言基础学习得差不多之后,可以深入学习数据结构,以及自己尝试做一些简单的项目,比如学生学籍管理系统、图书管理系统,银行管理系统等。
7、语言功能掌握到一定程度之后就是要考虑方向的时候了,建议向嵌入式编程方向发展,这是你就有必要学习一些硬件的东西。嵌入式产品在航空、医疗、家电、消费电子、汽车电子、移动等众多领域都可以看到,应用领域极为广泛,所以现在嵌入式开发相当热门,并且具备非常好的发展前景!

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

}

从语法上看,C语言是 C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译,这给很多初学者带来了不小的困惑,学习 C++ 之前到底要不要先学习C语言呢?

我对这个问题保持中立,但是初学者直接学习 C++ 会非常吃力,Hold 不住,尤其是对计算机内存不太理解的情况下,C++ 是学不懂的。C++ 是一门灵活多变、特性丰富的语言,同时也意味着比较复杂,不易掌握。

不过可以明确地说:学了C语言就相当于学了 C++ 的一半,从C语言转向 C++ 时,不需要再从头开始,接着C语言往下学就可以,所以我强烈建议先学C语言再学 C++。

C++和C语言的血缘关系

现在看来,C++ 和C语言虽然是两门独立的语言,但是它们却有着扯也扯不清的关系。

早期并没有“C++”这个名字,而是叫做“带类的C”。“带类的C”是作为C语言的一个扩展和补充出现的,它增加了很多新的语法,目的是提高开发效率,如果你有 Web 开发经验,那么你可以将它们的关系与 和

这个时期的 C++ 非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序(名字叫 cfront),先将 C++ 代码”翻译“为C语言代码,再通过C语言编译器合成最终的程序。

随着 C++ 的流行,它的语法也越来越强大,已经能够很完善的支持面向过程编程、面向对象编程(OOP)和泛型编程,几乎成了一门独立的语言,拥有了自己的编译方式。

我们很难说 C++ 拥有独立的编译器,例如 Windows 下的微软编译器(cl.exe)、Linux 下的 编译器、Mac 下的 Clang 编译器(已经是 Xcode 默认编译器,雄心勃勃,立志超越 GCC),它们都同时支持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++ 和C的一些差别,以及面向对象编程和泛型编程。
}

C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理。

如果你希望成为出类拔萃的人才,而不仅仅是码农,那么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。有了足够的基础,以后学习其他语言,会触类旁通,很快上手,7天了解一门新语言不是神话。

有想法学习C语言的小伙伴建议先领取或收藏下方这份学习资料,其中包含有学习笔记、开发工具安装包和视频教程,适合每位从零开始的初学者,还能节省不少学习成本,让你轻松入门!

C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中……

这些迷茫也导致了我们在学习的过程中不知道如何学、学什么,所以,总结这个列表,希望对C语言初学者可以有所帮助~

来看看C语言可以做什么,从最简单的、最熟悉的说起吧,毕竟我们在学校学习的时候,老师几乎都会让我们去开发:

一、C语言可以实现一些常见的应用

以下几个几乎是我们学习C语言到一定阶段之后必开发的一个小项目了。(简单)

1、C语言制作简单计算器

用C语言做一个简单的计算器,进行加、减、乘、除操作。

使用C语言完成一个简单的通讯录。会涉及到结构体、数组、链表等重要概念。

3、C语言利用epoll实现高并发聊天室

实现客户端和服务端编程,服务端使用epoll机制,高并发必备,支持多客户聊天室聊天;客户端使用epoll和fork,父进程与子进程通过pipe通信。

使用C语言完成一个简单的日历功能,输入相应的年/月即可看到当月的日历。

二、C语言可以开发游戏

当然C语言也可以开发一些小游戏,有趣的同时也掌握了相应的知识点。

使用C语言完成一个简单的扫雷游戏。

使用C语言完成一个2048游戏。

3、C语言快速实现五子棋

使用C语言实现五子棋游戏。

三、C语言可以开发的其他应用

如果你以为C语言只能开发上面介绍的小游戏以及一些耳熟能详的应用呢,那么就大错特错了,因为C语言还可以开发很多东西,如下:

1、C语言实现一个支持PHP的简易Web服务器

用C语言实现一个简易的Web服务器,并能支持动态解析PHP程序。主要涉及到的技术有:LinuxSocket编程,HTTP协议(只实现GET请求),Fast-CGI协议。

2、C语言实现ping程序

项目用C语言实现ping命令。通过项目可以更深入地理解TCP/IP协议,掌握C语言进行网络编程的技巧方法。

3、C语言实现Linux网络嗅探器

项目通过原生套接字的方式,监听所有本地主机收发的数据链路层帧结构,然后解析数据包的类型,并记录到日志文件,实现一个轻量级的。

4、C语言实现文件类型统计程序

通过实现一个文件类型统计程序,对Linux的文件系统有一个更加深入的了解,尤其在文件类型的判断,目录的操作上的理解会加深。

5、C语言实现多线程排序

项目在Linux环境下使用C语言多线程模型实现了排序算法,通过该项目的学习,可以理解并实践Linux环境的编程基础及多线程模型。

四、用C语言实现Linux命令

最后,再介绍如何用C语言实现Linux命令,通过学习可以了解Linux操作系统。

C语言实现Linuxtouch命令项目,学习基于Linux环境的系统编程技术,尤其Linux文件IO操作相关技术。

C语言实现Linuxcp命令项目的学习,可以掌握Linux操作系统中的文件IO相关的系统函数和目录相关操作的系统函数,比如open、write、opendir、readir,深入了解Linux环境系统编程。

使用C语言实现Linuxls命令,学习linux目录与文件属性。

通过C语言实现Linuxwho命令项目的学习,可以掌握Linux操作系统为上层提供的访问系统数据文件的接口,更好的理解Linux操作系统工作的原理。

以上17个大大小小的项目包含各个方面,可以当做是C语言新手的项目练手列表,也可以当做是看看C语言可以做什么的列表。

如果你想更好的提升你的大学编程能力,好好学习C/C++编程知识的话!那么你很幸运,这里分享一套包含源码、项目实战视频、项目笔记和基础入门教程的学习资料,欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

接下来说一个大家都在乎的问题:C语言学起来真的简单吗?

和 Java、C++、Python、C#、JavaScript 等高级编程语言相比,C语言涉及到的编程概念少,附带的标准库小,所以整体比较简洁,容易学习,非常适合初学者入门。

正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合下方学习资料,大家都能够快速掌握编程技术。资料中包含有系统化的学习路线和视频教程,内容清晰详细,非常适用于零基础的小伙伴,赶快领取学习吧!

编程语言的发展大概经历了以下几个阶段:

· 汇编语言是编程语言的拓荒年代,它非常底层,直接和计算机硬件打交道,开发效率低,学习成本高;

· C语言是面向过程的编程语言,已经脱离了计算机硬件,可以设计中等规模的程序了;

· Java、C++、Python、C#、PHP 等是面向对象的编程语言,它们在面向过程的基础上又增加了很多概念。

C语言出现的时候,已经度过了编程语言的拓荒年代,具备了现代编程语言的特性,但是这个时候还没有出现“软件危机”,人们没有动力去开发更加高级的语言,所以也没有太复杂的编程思想。

也就是说,C语言虽然是现代编程语言,但是它涉及到的概念少,词汇少,思想也简单。C语言学习成本小,初学者能够在短时间内掌握编程技能,非常适合入门。

其实PHP、Python等底层语言还不是一样用C语言来实现,所以C语言的重要性不言而喻。不要听信C语言已经过时之类的谣言,C语言一直都在默默无闻、踏踏实实地做着底层很重要的事情,经久不衰。想要在软件行业立足发展,C语言还是很值得学习的。

在成为一名优秀的C语言开发工程师的道路上充满了汗水和辛劳,希望大家在学习中遇到困难时也不要气馁或者放弃,坚持一下。

欢迎想学好C语言的小伙伴进入下方的学习群,群里面都是志同道合的小伙伴学习谈论,互相分享学习经验和心得,并且开发工具、学习资料等都有分享,还有专业的技术大神在群里免费分享答疑!

C语言发展至今已经有40年的时间了,然而其程序特性依旧不过时,至今在程序底层语言市场占据不少的份额,不少初学者面对C语言有一种包袱,一种程序逻辑变化以及C语言演变的包袱,市场上的关于C语言的书籍琳琅满目,适合初中者的有哪些呢?

接下来我再推荐一组适用于初学者的书籍,每一本都是学习C语言过程中不容错过的经典书籍,需要电子版的小伙伴可以直接领取下方学习资料包:

《C Primer Plus》作为被业内人士推崇的C语言入门经典,它应该是C语言教材里最好的一款之一。

在知识广度上,很少有书能匹及。它能为你系统学习C语言提供一个良好的平台。作者对C语言的见解精辟。在娓娓叙述的同时,作者辅以大量程序以分析。它让我对C语言有了更加系统的全新认识。决非国人所写的那些公理化的教条说教,我觉得作者把自己的心血全部吐露。

书很厚,近700页,却不没有让我觉得任何的烦琐,甚至是兴趣盎然,有时间可以把上面所有的课后题目都做了,帮助会很大。

都说浓缩的都是精华,《The C programming language》把C语言的原理演变解释的淋漓尽致。拿到这本薄薄的书,很多人开始怀疑,C语言是这么几百页能讲清楚的么。

看完这本书,我想答案已经很明了,却真的让人感到震憾。什么是好书?无法删减的书才是真正的好书。K&R的书一如C语言的设计理念:简单而高效,里面的习题建议都认真做一遍,而且是在Linux下用vi来做,用makefile来编译,用shell脚本来进行测试。

这本书最大的特点就是和指针结合在一起进行讲解,通过一些经典的C例题对所学的知识进行巩固,对指针的基础和深入的探讨,有助于初学者更好的理解C语言,还有明白C的存储机制。我之前买了《C语言详解》和《C Primer Plus》结合这本书一起学习,可以说是完美的,希望每个热爱C语言的人能够拥有这本书。

《C专家编程》这本书的特色诙谐幽默,把C上升到一个更高的层次,更容易让初学者接纳。全书如一部优美的故事,但听作者娓娓道来。语言风趣活泼,除了C语言,还教会了我们很多做人做事的道理。

作者作为Sun公司的工程师,内功极深,不迷信任何权威,还经常调侃下ANSI C委员会,ISO组织和GNU的作品(如GCC)。他把语言讲解到了一个很高的层次,深入剖析了其他书上没有提到过的好东西。

《C标准库》是一本圣经,全面阐释了函数的应用,是程序员必备的参考书籍。提供完整源代码,全面深入阐述库函数的实现与运用。C程序员必备参考书。本书是由世界级C语言专家编写的C标准库经典著作。英文版已经重印十多次,影响了几代程序员。

本书结合C标准的相关部分,精辟地讲述了每一个库函数的使用方法和实现细节,这正是一个真正的C程序员所必须掌握的。更重要的是,书中给出了实现和测试这些函数的完整源代码。可以让你更深入地学习C语言。

不仅如此,本书还讨论了一些即使是最有经验的C程序员通常也不太熟悉的知识,比如国际化和独立于区域设置的程序的编写、与构建库相关的概念和设计思想。

就内容而言,本书不深,适合初学者加深一下,或者作为学习的辅助资料。内容也不多,不会引起恐惧。学编程语法是必须,更重要的内容是学会语法以后要多读别人的思想。而且本书的编排比较有趣,虽然内容不多,但处处精华,需要多想想才能体会作者深意。

好了,今天的分享就到这结束了,依旧是干货满满,有资料需求的小伙伴都可以免费领取文章中插入的学习资料包,希望对大家的学习都能有所帮助。

}

我要回帖

更多关于 如何自学编程 的文章

更多推荐

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

点击添加站长微信