一起学《C程序设计》第一课——C语言概述和学习前的准备、意识

第一节课我们先了解C语言的一些基本常识和概念性;作为一个纯小白,首次接触编程需要做好一些心理准备,消除一些思想上的误区,避免一些弯路;然后准备好硬件设备(电脑)和软件(代码编辑器、编译器等),顺便体验敲一段代码和编译运行的快感。

注意,请认真学习完《C程序设计(第五版)》第一章后再阅读本文会有更大的收获。

计算机是由各种硬件组成,而让这些硬件工作靠的是程序。程序是一个总称,它由N多条的指令构成,每一条单独的指令去和硬件交互直至执行完所有的指令——执行完整个程序,最终输出结果。明白程序的基本概念后,是不是觉得写一个程序很简单?就是把一堆指令凑在一起,so easy?

但是计算机毕竟不是人,它只能识别它自己的语言——机器语言,就是二进制代码,由0和1组成,可长可短,随意组合。如果把我们日常的行为操作指令都转换成二进制,那可太费事了,所以经过人们的不断探索和迭代,更加高级的“指令”诞生了。所谓高级,指的是和我们人的行为习惯保持一致,不用把指令转换成二进制,就像现实世界人与人交流一样去编写“指令”——高级编程语言的代码,在机器执行这些高级代码之前通过编译器把它们编译成机器识别的二进制即可,这样大大提高了编程的效率和程序的可移植性。

C语言是高级语言吗

C语言是高级语言。我们通常讲的高级语言是相对于汇编语言来说,不直接和底层硬件打交道;但是C语言自身又可以去做底层硬件的开发,比如驱动程序、单片机系统开发,这又让C语言显得不那么高级。

时至今日,随着编程语言的不断发展,和人交互更加自然流畅的语言我们成为高级,但是他们大多数底层的实现还是靠C语言的,学好了C,你也可以开发出更高级的语言。

C语言有什么用处

C语言是偏后端的语言,不像前端那样学习很快就能看到网页、APP界面那样有成就感,看起来好像离我们挺远。

那C语言究竟能做什么呢?往大了说,可以开发操作系统,可以开发出其他高级语言,做硬件驱动开发;往小了说,可以做个GUI软件(有图形界面的软件),帮我们算一道数学题。

其实,作为现代编程语言的基础,学习C语言能更好的让我们了解计算机系统,也能更好地去学习更高级的编程语言。以C语言作为学习编程的入门语言,你肯定不会吃亏,会让你今后在编程上的学习受益终身。

C语言要背代码吗

任何编程语言的学习都不要背代码。学编程不是靠背,一些语法规则,控制结构在你熟练之后会得心应手,通篇背代码除了应付一下考试之外别无用处。甚至你也不用刻意去死记硬背一些常用的库和原生的函数等,编程是为了解决问题,不是纯粹为了编程而编程。

工作中,在做项目写代码的时候,没有人能打包票什么函数都能记得住,什么类库都能得心应手的使用;往往大部分时间花在技术调研,Google搜索和浏览一些技术社区上。既然不背代码那背什么呢?答案是记住编程思路,转换为己用

C语言学习难吗

对于初学者来说,学习一个全新的技能尤其是虚拟世界触碰不到的都会有相当的困难。但是只要坚定信念,踏实学习,不要以应付考试为目的,带着兴趣去学,按照书本的学习路线进行下去不会有太大的障碍。过程中会牵扯一些计算机特有的概念和知识点,要多去了解和探索,知其然更要知其所以然,对未知领域有渴求和探索欲,“难”不在话下。

硬件

普通台式电脑或者笔记本都可以。Windows 系统或者 Mac 系统均可。

软件

去windows官网下载Visual Studio:https://visualstudio.microsoft.com/zh-hans/,它自带编译环境,不用我们手动再去配置,这个对初学者来说很友好,通常软件环境的搭建就会把一小部分人劝退了。

安装选择 Community 个人免费版即可,过程中勾选“使用C++的桌面开发”,更加详细的安装教程请自行网络搜索。

安装Visual Studio

勾选“使用C++的桌面开发”

PS:注意更改一下安装目录,软件体积较大,默认安装在系统盘。

Hello World

按照国际惯例我们写一个简单的输出“Hello World”程序。新建一个空白项目,然后在源文件里添加“新建项”,选择“C++文件(.cpp)”,起名helloWorld改后缀为.c,编辑helloWorld.c文件。

添加新建项

新建helloWorld.c文件

编写代码

运行输出

怎样,有趣好玩不?如果此刻激发了你对C语言、编程的兴趣,那就动手实操一下吧。

往期文章

「每天一道练习题」C语言顺序程序设计练习题

给出一些 字符,然后按照相应的格式打印出来。(谭浩强 C 语言 第三版 88 页第 4.4 题)

若 a = 3,b = 4,c = 5,x = 1.2,y = 2.4,z = -3.6,u = 51274,n = 128765,c1 = ‘a’,c 2 = \’b\’。想得到以下的输出格式和结果,请写出程序(包括定义 变量 类型和设计输出)。要求输出的结果如下:

看到题目,我们首先应该想到的是数据的输出格式,在什么样的情况下占多少位空格。我们用 printf 函数,并且用 \’\’%d\’,\’%f\’ 加一些数字就可以满足。

运行后,控制台输出如下:

首先我们弄清题意,可以将 a,b,c 归为 整型类型,x,y,z 归为 浮点型,u,n 归为 长整型,c1 和 c2 归为 字符型。接着我们按照对应的数据类型进行相应的输出操作。

为什么这么多人对谭浩强的C语言教材吐槽

现在大学教材,几乎说到C语言都会提到谭浩强的C语言程序设计,一提到此书真知道的或者道听途说的都会对老谭嗤之以鼻。小编也是从老谭的教材开始入门的,相比现在的很多学弟学妹也是用着他的教材,小编就根据亲身的经历说下被吐槽的三个原因:

1.教材更新速度太慢,导致和当前的C99版本标准不一致。

很多人吐槽说,谭浩强的文章里面的代码放在机器上运行,根本不能运行通过,这种很多是老标准和新的标准冲突所致。主要是原因还是整体版本更新速度偏慢,计算机时代数据,概念更新速度比以往任何时候都快,还抱着老学究的姿态,注定会有脱节感。如同在2000年左右c++因为比c语言相比会损失大约百分不到百分10的效率,于是大家在芯片上编程都去采用C语言,不去选择C++因为再那个时候觉得用C++太损失效率了,时至今日安卓java虚拟机在手机上都能大行其道,计算机的更新速度远比想象的快,一本好的教材需要持续不断的更新才能跟上历史的潮流。

2.里面的确存在很多语法错误,以及错误概念的诱导

从语法角度,的确存在很多的错误,放在机器上运行不过,缺乏严谨的治学态度。

有些概念的确是由于翻译上的失误,导致存在误差,其实这也是语言沟通存在问题,目前大多数技术翻译书籍都存在此类的毛病,这块还是有待改进。

3.教材整体设计有些生硬,编程语言对于初学者来说,首先要产生兴趣,上来就是一堆生涩的语法,让那些急需要信心学习的爱好者,望而却步,内心会觉得C语言好难啊,啥时候能学好。在组织结构上直接上来就是生涩的语法,在导语和入门方面缺乏一些趣味性的引导,这也是为什么这么多学习编程的人,宁愿挠着头皮去看原版的英文经典书籍去学习,因为外国的技术书籍在引导和结构上的确比国内有些书籍安排的更加合理,但是国内的书籍更加接地气,各有所长。

很多人觉得骂老谭一顿很爽,是真的都是看出老谭的书存在问题,而发出的声音嘛?

人与亦云估计也是大有人在,等真正看到这些问题了,再去指出这些问题,再理直气壮的去评论,何尝不是一种收获。编程学习需要有工匠精神,等把自己打造的艺术品展示出来的时候,

以前吃过的哭,受过的累,就如同过眼烟云,希望初学者都能等到这么一天。

本文属原创,

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。