暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
手把手教你学C语言.pdf
535
130页
2次
2023-11-27
25墨值下载
当你拿起本书翻到这一页时,不管最后买与不买,都要对你说声谢谢,相遇就是缘分。
为什么要写这本书
本书是我人生中写的第一本书,基于我学习C语言的笔记。我从大学本科的时候开始学习C语言,每每学到新的知识或有心得体会时便记下来,就同写日记一样。就这样断断续续一直持续到硕士研究生
阶段,那时差不多写了7万多字。我会将自己的笔记分享给很多想学C语言的师弟师妹。在学习的过程中他们发现,我的笔记比其他C语言书籍都更易于理解,讲得通俗易懂,风趣幽默。虽然当时只有7万多
字,内容有限,但他们都认为“绝对是入门的好书”。所以我的“前期读者”以及专业导师都希望我能出版这些笔记。但我觉得还不够好,内容还不够充实,也怕误人子弟,浪费读者时间,毕竟当时水
有限。但这却在我心里埋下了一颗想要写一本好书的种子。
硕士研究生毕业后我应聘到上海起策教育科技公司工作,而我教授的第一门课就是C语言。从此我正式开始了与C语言全天候、长时期的亲密接触,也正式开启了我要将这本书写好的历程。在工作中,
我有很多心得体会,或跟同事交流,或得益于很多前辈的教导。于是通过不断地补充,原先的7万多字变为现在的34万多字。在这个过程中我不断地对它精雕细琢,就像培养一个优秀的孩子一样,只希望
能展现给大家一份优秀的作品。现在我觉得时机到了,可以让它为更多想学好C语言的读者做贡献了。
本书内容
本书是学习C语言的入门书籍,所以一开始对C语言的铺垫很充分,循序渐进,目的是让大家对C语言不再陌生,轻松愉快地学习。本书的内容对于入门来说是非常全面的,包括C语言基础知识、流程
控制、数组、函数、指针、字符串、结构体、链表、文件操作等主流知识。这几个知识点是学习C语言的主要框架,对于不同的C语言书籍,区别就在于讲得是否详细,是否能让每位读者都掌握。本书中这
几个知识点都讲得非常详细、透彻,是经过无数学弟学妹检验过的,也期待着读者的检验。除此之外,本书还增加了很多在工作中需要用到的其他知识,如栈和队列、自定义头文件、多文件编译、Linux下
C文件的编译和链接、链接库等。
本书特色
因为本书基于我的学习笔记,所以本书更多的是以初学者的角度编写的,而且后来一直延续了这种风格,抛开“高大上”、生涩的专业术语,用词通俗易懂。
因为本书的很多内容是我在参加工作之后总结的,所以都是根据实际工作的需要整理而成。摒弃了脱离实际工作、过时的、不用的、“变态”的用法,大大减轻了读者学习的压力,除去了学习道路上
的“杂草”,铺设了一条更好走的捷径
此外,本书并不是单纯地讲理论,而是配有大量的程序。每个知识点都是配合程序讲解的,这样理解起来就更加容易。而且本书没有那种单独的、无答案的课后练习题,所有的练习都直接以程序的形
式写在书中,读者在学习的时候直接练习那些程序即可,而且每个程序都是经过编译可以直接运行的。此外本书不会提供电子版的代码,因为学习C语言必须要多动手、多“敲”代码,所以我希望读者自
己动手。
最后真切地希望本书能成为你编程路上的重要伙伴,为你的成长打下深厚的编程功底。“虽然我可能不是最好的,但我绝对是最用心的。”
限于作者水平有限,书中难免存在不当或疏漏之处,恳请读者批评指正,并多提出宝贵意见。希望在你的帮助下本书一步步接近完美,谢谢!
吴明杰
2016年9
1章 C
在学习C语言时,很多同学都有这样的疑问:为什么要学习C语言呢?这个问题很好,也很重要!因为学习任何一门课程都有难度,如果不知道为什么要学习的话,那么很可能学到半路就放弃了。所以
学习C语言之前必须要先将这个问题弄清楚,这样学起来才有目的性,才有动力。
C语言是一门编程语言,编程就是跟计算机进行对话。要与计算机进行对话就要学习一门能与计算机进行沟通的语言,C语言就是这样一门语言。但是能与计算机进行沟通的语言很多,为什么要学习C
语言呢?本章从四个方面来解释这个问题。
1.1 C的起源和发展
1.1.1 计语言展的阶段
如图1-1所示,计算机语言的发展主要分为三个阶段。
1.机器语言
第一代计算机语言称为机器语言。机器语言就是0/1代码。计算机只能识别0和1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是0/1代码,因为CPU只能执行0/1代码。
那么这是不是就意味着我们编程一定要用0/1代码呢?首先这么编写肯定是可以的,但是这样太麻烦,而且很不好理解,所以后来就出现了汇编语言
2.汇编语言
汇编语言就是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:
add 1, 2;
add就是一个英文单词,这样看起来就稍微有一些含义了,即1和2相加。这个就是汇编语言
如果直接用机器语言编写的话,这几乎是无法实现的。因为用机器语言太难记忆了,也没人能看得懂。所以后来就设计出了第二种语言,即将0/1代码翻译为英文单词,这些英文单词直接对应着一串
0/1指令。这个就是汇编语言。通过专门的软件就可以将这些英文单词转化成0/1代码并由计算机执行,这种专门起翻译的作用的软件叫作编译器。这些英文单词和与它们对应的0/1代码之间的对应关系
以及语言的语法,在编写这个软件的时候就已经写在里面了。我们只要通过编译器就可以将这些都转化成0/1代码。这样大大方便了我们对程序的编写。
图1-1 计算机语言发展的三个阶段
3.高级语言
汇编语言之后又出现了第三代语言。第三代语言又叫“高级语言”。高级语言的发展分为两个阶段,以1980年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,后一阶段属于面向对象的
语言。
什么叫面向过程,什么叫面向对象?这是很难解释的一个问题,所以这个问题大家现在先不要考虑。等到将来你们学完C语言、C++、Java或者C#之后才有可能理解。因为这个需要比较。
总之,面向过程语言中最经典、最重要的就是C语言。Fortran、Basic和Pascal语言基本上已经很少有人使用了。但是C语言一直在用,因为C语言是计算机领域最重要的一门语言。但是C语言也有缺
陷,它的缺陷只有在学完面向对象语言之后才能体会到。
所以从20世纪80年代开始又产生了另外一种“以面向对象”为思想的语言,其中最重要、最复杂的就是C++。C++从易用性和安全性两个方面对C语言进行了升级。C++是一种较复杂、难学的语言
但是一旦学会了则非常有用。因为C++太复杂,所以后来就对C++进行了改装,产生了两种语言,一个是Java,另一个是C#。
Java语言是现在最流行的语言之一。C#则是微软公司看Java很流行而写的一个与Java语法相似的语言。因为Java和C#几乎是一模一样的,所以你只需要学习其中的一种语言就可以了。
1.2 C的特点
C语言现在已经很成熟,它的各种语法规则、思想都已经确立起来了,并对现在的很多语言产生很大的影响。但是任何事物都有其优点和缺点,C语言也不例外。下面我们分别来看一下。
1.3 C的应用领域
C语言的应用领域分两大块:系统软件开发和应用软件开发。其中C语言最主要用于编写系统软件,编写应用软件不是它的强项。
1.系统软件开发
1)操作系统:UNIX、Windows、Linux。
2)驱动程序:比如主板驱动、显卡驱动、摄像头驱动。驱动一般是用C语言和汇编语言写的,C++在这方面稍弱。
3)数据库:SQL Server、Oracle、MySQL、DB2。
2.应用软件开发
1)办公软件:WPS。
2)图形图像多媒体:Photoshop、Mediaplayer。
3)嵌入式软件开发:嵌入式软件开发说得简单点就是芯片编程,比如我们以后学习在单片机和ARM上进行的开发都属于嵌入式软件开发。
4)游戏开发:2D、3D游戏。CS整个游戏的引擎全部是用纯C写的。
1.4 C的重要性
其实前面已经讲了很多C语言的重要性,下面来总结一下
1)C语言是计算机界公认的有史以来最重要的语言
2)C语言是所有大学工科和理科学生必修的课程。
3)UNIX、Windows、Linux都是用C语言开发的。
4)C语言是任何一个想终身从事程序设计和开发的人员必须要熟练掌握的语言之一。
5)C语言是大企业、外企招聘程序员必考的语言。
6)学习C语言可以为学习C++、Java、C#奠定基础。C++、Java、C#都源自C语言,C语言大部分的语法、知识都被移植到C++、Java和C#中了。所以学习C语言有助于C++、Java和C#的学习。对
于学习编程的人来说,有深厚的C语言功底是极其重要的。只要C语言的功底深厚,那么学习其他语言都会很简单。但深厚的功底不是一天两天造就的,需要长时间的积累和沉淀!
1.5 本章总
本章从四个方面对C语言进行了介绍,主要讲述为什么要学习C语言。本章是正式进入C语言学习的一个过渡,目的是使读者从心理上更容易接受这门语言。读者在阅读本章的时候带着轻松愉快的心情
就行了,不需要死记硬背。
2章 C
2.1 学习C语言的心得
首先我要告诉大家的是:第一,学习无捷径!对于学习编程而言,你现在的付出将来都是有回报的。但是,学习C语言也需要方法。
我遇到过很多学习C语言的人,包括我以前的同学,很多人都是学到一半就放弃了。那么为什么那么多人学习C语言都半途而废呢?原因就是他们找不到正确的学习方法!在学习的过程中四处碰壁,兴
趣和自信心逐渐被消耗殆尽。对他们来说学习C语言是一件很痛苦的事!
事实上学习编程是一件很好玩、很有趣、很有意思也很有前途的事情!那么学习C语言有什么好的方法呢?根据我自己多年的总结,以及很多编程前辈的经验,主要有以下几个方面:
1)分清主次。学习C语言最忌讳的就是不分主次,这是绝大多数学习C语言的同学都会犯的错误!我们刚开始学习的时候只需要将那些最重要的、最核心的学会就已经很好了!先将最精髓的东西提炼
出来,再将整个C语言学一遍,从全局上把握C语言。对于那些次要的,有需要再学,没有需要也可以不学。
2)一定要多上机,多“敲”代码。编程是一门实践性的学科,绝对不是理论。如果不动手“敲”代码的话,永远都学不会编程。很多问题只有在“敲代码”的时候才能发现,才会有更加深刻的体会、
领悟和理解。而不是靠死记硬背书中的注意点,那样真的很痛苦。我在学习编程的时候从来都不会刻意记忆什么注意点,这些知识点都是在不停“敲代码”的过程中,自然而然地融入我的身体中的。
你们一定要记住一句话:“程序是写出来的,不是看书看出来的!”
3)要“敲代码”,必学盲打!盲打是学习编程最基本的技能。就算你C语言学得很好,达到了“思想在键盘上飞舞”的境界,但是如果你不会盲打,那你想“飞”也“飞”不起来!所以,不会盲打会
非常影响你的学习效率。
4)要学会记笔记。编程需要不断地积累。我们一定要学会模仿别人优秀的代码、优秀的算法,然后将它记下来。一定要站在巨人的肩膀上学习。但是我们的记忆能力是有限的,时间长了难免会遗忘,
所以一定要学会记笔记。一有心得、体会、感悟就写下来,这些都是很珍贵的。我们在记笔记的时候,如果眼前没有计算机则可以先写在纸上,但事后一定要将它整理成电子版。整理成电子版看起来会
方便、舒适,还可以随意地增添和删改,保存时间也长。
of 130
25墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。