第一章 C语言开篇

1.1 计算机组成

1946年2月14日,由美国军方定制的世界上第一台电子计算机"电子数字积分计算机"(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世。

计算机(俗称电脑)堪称是人类智慧的结晶,随着计算机的不断发展,各行各业的正常运转基本都 离不开计算机,计算机为人们的日常生活带来了快捷和方便。那么作为一个时时刻刻都在跟计算机打交 道的"程序猿",对计算机又了解多少呢?下面让我们一起来学习计算机的组成及工作原理吧。

计算机由硬件系统软件系统所组成。

  1. 硬件系统由 运算器、 控制器、 运算器(Datapath) 存储器、 输入设备、 输出设备5大部件组成
  • 运算器(Datapath)

运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

  • 控制器(Control)

是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度 程序、数据、地址,协调计算机各部分工作及内存与外设的访问等

运算器和控制器都集成在一颗称之为CPU的中央处理单元芯片上:

  • 存储器(Memory)

存储器是计算机系统中的记忆设备,用来存放程序和数据 。计算机中全部信息,包括输入的原始数 据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。存储器分为内存和外存

内存:

外存:

  • 输入设备

输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的 作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的 输入设备有键盘、鼠标、磁带机、磁盘机、光盘机等

  • 输出设备
  • 输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各 种数据符号及文字或各种控制信号等信息输出出来。常用的输出设备有显示器、打印机、磁带、光盘机

2.软件系统

软件系统可以分为:系统软件应用软件

1.2计算机语言

1、软件(程序)是指令的集合

2、程序就是用计算机语言来编写或者开发的。

3、计算机语言总的来说分为 机器语言,汇编语言,高级语言三大类,而这三种语言也恰恰是计算机语 言发展历史的三个阶段。

  • 1946年2月14日,世界上第一台计算机ENAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用 的语言是只有专家才能理解的语言,与人类语言差别极大,这种语言就称为机器语言(使用 0和1 的二进制码)。机器语言是第一代计算机语言。这种语言本质上是计算机能识别的唯一语言,人类 很难理解。以后的语言就是在这个的基础上简化而来。
  • 计算机语言发展到第二代,出现了汇编语言。汇编语言用助记符代替了操作码,用地址符号或标号代替地址码。这样就用符号代替了机器语言的二进制码。汇编语言也称为符号语言。
  • 当计算机语言发展到第三代时,就进入了"面向人类"的高级语言。高级语言是一种接近于人们使用 习惯的程序设计语言。它允许用英文写计算程序,程序中的符号和算式也与日常用的数学式子差不多。
  • 计算机语言发展到今天可以说几乎是形成了"百家争鸣"的局面。

1.3 C语言发展历史及特点

1、1972 年,美国 AT&T 公司贝尔实验室(AT&T Bell Laboratory)的丹尼斯·里奇 为了开发Unix操作 系统在B语言的基础上最终设计出了一种新的语言,他以 BCPL 的第二个字母作为这种语言的名字,即C 语言

2、1970到80年代,C语⾔被⼴泛应⽤,从⼤型主机到⼩型微机,从中也衍⽣了C语⾔的很多不同版本。 为统⼀C语⾔版本,1983年ANSI 美国国家标准学会( American National Standards Institute)成立 了⼀个委员会来制定C语⾔标准。1989年C语⾔标准被批准,这个版本的C语⾔标准通常被称为ANSI C。⼜由于这个版本是 89 年完成制定的,因此也被称为 C89。后来 ANSI 把这个标准提交到 ISO,1990 年被 ISO 采纳为国际标准,称为 ISO C。⼜因为这个版本是1990年发布的,因此也被称为C90。

3、C语言发展时间轴

1.4 C语言的应用

1、 C语言应用场景

  • 系统软件开发
    • 操作系统:UNIX、Windows、Linux。
    • 驱动程序:比如主板驱动、显卡驱动、摄像头驱动。驱动一般是用C语言和汇编语言写的,C++在这方面稍弱。
    • 数据库:SQL Server、Oracle、MySQL、DB2。
  • 应用软件开发
    • 办公软件:WPS。
    • 图形图像多媒体:Photoshop、Mediaplayer。
    • 嵌入式软件开发:在嵌入式平台(比如:路由器、导航仪、机顶盒、手机、工控设备、汽车电子等)上进行的应用软件开发。
    • 游戏开发:2D、3D 游戏。CS 整个游戏的引擎全部是用纯C写的

2、C语言在所有编程语言中的江湖地位

1.5 手把手教你搭建C语言开发环境

Jetbrains旗下产品之一,主要用来开发C/C++

1、 CLion的安装

双击下载的安装包

点击"Next"进入下一步

选择CLion的安装路径,注意:不要选择带中文的路径,点击"Next"进入下一步

勾选所有选项,然后点击"Next"进入下一步

点击"Install"

耐心等待

勾选"I want to manually reboot later",点击"Finish"完成安装

安装完毕后,回到电脑桌面,运行程序

选择"Do not import settings"然后点击"OK"

CLion是需要付费的,但是我们可以选择免费使用30天

点击"Continue"

2、MinGW的安装

往下拉,一直拉到下面的界面,然后点击"x86_64-posix-sjlj"就可以下载压缩包了。

安装包下载完后,拷贝至C盘并且解压

3、配置CLion

  • 打开CLion后鼠标点击"Customize",然后点击"All settings"进入设置界面

在设计界面搜索栏输入"toolchains"搜索工具链选项,然后点击"+",并且选择"MinGW"

在"Environment"栏填入刚刚解压的MinGW64的路径,然后CLion会自动帮你填上所有你该 填的东西,点击OK,等调试的小虫子变绿就可以了。

当然,也会出现无法检测成功的情况,这时候就需要手动填写啦。

Make填入路径:

C:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\mingw32-make.exe

C Compiler填入路径:

C:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gcc.exe

注意:gcc.exe就是用来编译C语言程序的编译器

C++ Compiler填入路径:

C:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\g++.exe

注意:g++.exe是用来编译C++程序的编译器

Debugger一般会自己填入,如果没有可以手动填:

C:\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin\gdb.exe

注意:gdb.exe是用来调试C/C++程序的调试工具

然后点击OK,等一段时间就可以了。

4、使用CLion创建C语言项目

  • 点击"New Project"

选择"C Executable", 然后在"Location"选项中点击右侧的文件夹图标选择项目需要创建的路 径,然后给项目命名,在这里我给项目命名为"test",最后点击"Create"

1.6 第一个C语言程序

 #include <stdio.h>

  int main(){    
        printf("hello world\n");
        return 0;      
 }

下面我们一起来看看这个简单的C语言程序包含了哪些内容?

  1. 程序的第1⾏ #include<studio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含stdio.h 这个头⽂件

  2. 第3⾏ int main() 是主函数,程序从这⾥开始执⾏,最后也从这里结束。main函数是C程序的入 口和出口

  3. 第4行是调用C语言中的printf函数, 其功能是将"hello world"显示在屏幕上。

  4. 第5行return 0 表示主函数返回0,结束主函数的执行(主函数执行完毕则代表程序运行结束 啦)。

1.7 程序的编译及运行

1、计算机只识别二进制0和1 :计算机都是大规模集成电路机,是采用大规模和超大规模的集成电路作 为逻辑元件的。电路的状态只有通和断两种情况,也叫高电平低电平,计算机用1和0描述这两种状态

2、用c语言编写的代码是不能够直接运行的,需要转换成计算机所识别的二进制代码,这个转换过程我 们称之为" 编译器"

3、编译器是一个可执行程序:你还记得配置CLion时选择的"gcc.exe"文件吗?

4、使用CLion编译和运行C程序

  • 点击CLion菜单栏中"Build",然后在弹出的选项中点击"Build test"编译程序

点击CLion菜单栏中的"Run",然后再弹出的选项中点击"Run test"运行程序

程序运行结果

5、注意:为了避免有些同学从入门到放弃,关于C程序编译的详细步骤和原理我们放到后面做专题进行 讲解。学习是一件循序渐进的事情,等到大家经过一段时间的学习对C语言比较熟悉后我们再讲解这些 深奥的知识点时,大家才能够更好的可理解和掌握,这样才能够真正的融会贯通。

1.8 C语言的注释

  1. C语言中有两种注释方式,分别为:
  • 单行注释

以//开始、以换行符结束的单行注释

//这是单行注释
  • 多行注释

以/*开始、以*/结束的块注释

 /*
    这是第一行注释
    这是第二行注释
 */

2、注释的使用注意事项

  • 多行注释尽量写在被注释的语句之上,例如:

    /*
    这是第一行注释
    这是第二行注释
    */
    printf("我是一条被注释的可执行语句^_^");

  • 单行注释可以写在被注释的语句之上, 也可以写在被注释的语句之后,例如:

    //单行注释在上面
    printf("我是一条被注释的可执行语句^_^"); //单行注释在后面

  • 但是!但是!但是!如果你以后是在银行的操作系统上进行C语言程序开发,请一定一定一定 要将单行注释写在被注释的语句之上! 因为银行使用的是AIX操作系统(类Unix操作系 统),该操作系统上的C语言编译器不支持将注释写在后面这种语法!

相关推荐
无尽的大道5 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
互联网打工人no15 分钟前
每日一题——第一百二十四题
c语言
爱吃生蚝的于勒8 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
羊小猪~~12 分钟前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
binishuaio18 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE19 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻24 分钟前
WPF中的依赖属性
开发语言·wpf
洋24032 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙34 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点35 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式