• 慕课网首页
  • 免费课
  • 实战课
  • 体系课
  • 慕课教程
  • 专栏
  • 手记
  • 企业服务
  • 猿问

我的购物车

已加入门课程

购物车里空空如也

快去这里选购你中意的课程

实战课

体系课

我的订单中心
去购物车
  • 登录 / 注册
抱歉,未找到你想要查询的结果
全部开发者教程

C 语言入门教程

C 语言基础教程
01 C 语言简介 02 C 语言的程序结构 03 C 语言的编译 04 C 语言的标准 05 C 语言中的注释 06 C 语言中的变量 07 C 语言中的变量类型 08 C 语言的常量 09 C 语言的输入与输出 10 C 语言中的 printf() 格式输出 11 C 语言中的类型转换 12 C 语言中的运算符 13 C 语言中的算数运算符 14 C 语言中的位运算符 15 C 语言中的逻辑运算符 16 C 语言中的三目运算符 17 C 语言中的分支结构 18 C 语言中的多重分支 19 C 语言中的分支嵌套结构 20 C 语言中的循环结构 21 C 语言中的 while 循环 22 C 语言中的 do-While 循环 23 C 语言中的 for 循环 24 C 语言中的多重循环嵌套 25 循环实战,打印九九乘法表 26 C 语言中的break和continue 27 C 语言中的 if 语句 28 C 语言中的 switch/case 语句 29 C 语言中的函数 30 C 语言函数的定义和声明 31 C 语言中函数的参数传入类型 32 C 语言中的 main() 函数参数 33 make 工具 makefile 34 C 语言中的数组 35 C 语言中的多维数组 36 数组的练习 37 C 语言中的字符串 38 C 语言中的字符串函数 39 C 语言字符串练习 40 C 语言中的指针 41 C 语言中的 struct 42 C 语言中的 union 43 C 语言中的 maclloc free() 44 C 语言中的 enum 45 整体练习-学生管理系统
  • 前端开发

    JavaScript

    JavaScript 入门教程

    本教程带你从初级到高级全面掌握 Javascript 的使用方法

    TypeScript 入门教程

    这是一个很好的简单课程,只需2小时你就可以学习TypeScript基础知识。

    Vue 入门教程

    本教程带您从零开始学习 Vue 框架的使用,让您轻松应对 Vue 项目的开发。

    Ajax 入门教程

    本教程涵盖Ajax的实现原理,及Ajax封装,最后是框架实现方法。

    ES6-10 入门教程

    对比 ES5 进行学习 ES6+,理解 ES6+ 语法背后的思想

    Yarn 入门教程

    Yarn得相关基础知识和高级进阶

    ECharts 入门教程

    从零开始学习 ECharts ,掌握 ECharts 核心内容

    HTML & CSS

    CSS3 入门教程

    本课程从盒模型、文字、颜色、过渡、动画、布局、伪类等方面介绍 CSS3 的使用。

    雪碧图入门教程

    本文详细介绍了雪碧图的由来历史以及各种使用方式

    移动端布局教程

    由于移动互联网的兴起,移动端项目占据了很大一部分比重,本章将详细讲解几种常见布局

    Html5 入门教程

    最新一代的HTML标准,增加了许多实用的特性

    Sass 入门教程

    前端项目中 Sass 的快速入门教程

    HTML 入门教程

    从零讲解 HTML,掌握基础 HTML 知识内容

    canvas 入门教程

    本教程带你从初级到高级全面掌握canvas的使用方法

    uni-app 入门教程

    从零开始学习 uni-app 框架,轻松上手应用开发

  • 服务端相关

    服务器

    Nginx 入门教程

    本教程使您掌握 Nginx 安装、配置、核心模块的详解、实际使用的能力。

    HTTP 入门教程

    从协议原理开始到 Web 服务器以及 Web 安全一网打尽

    Docker 入门教程

    从 Docker 的基础概念开始,从实际问题入手带你学习 Docker

    Shell 入门教程

    本教程由浅入深,系统性的讲解Linux Shell脚本编程。

    Linux 入门教程

    本教程从安装 Linux 开始,囊括 Linux 基础命令操作以及进阶系统管理

    开发工具

    Gradle 入门教程

    本教程使您掌握实际使用gradle进行项目构建、测试、打包、发布的能力。

    Vim 编辑器教程

    课程主要讲解Vim的安装配置,四种模式、基本操作,以及包管理工具和寄存器等内容。

    RESTful 规范教程

    本教程从什么是 REST 开始带你领略 Web 开发中无处不在的规范

    Dreamweaver 教程

    DW 是一款同时具有网页制作和网页管理功能的网站开发工具,可以快速进行网站建设

    Markdown 入门教程

    本课程涵盖 Markdown 的基本及扩展语法。

    Maven 入门教程

    从最基础的安装 Maven 开始到 Maven 在开发中的实际应用

    Eclipse 编辑器教程

    本教程从Eclipse安装开始带你轻松掌握Eclipse常用开发技巧

    GitHub 入门教程

    本教程带你轻松掌握最实用的 GitHub 知识

    Android Studio 编辑器教程

    Android Studio 编程技巧一网打尽

    PyCharm 编辑器教程

    工作经常用到的 PyCharm 编辑器使用技巧一网打尽

    Sublime Text 使用教程

    花里胡哨展示sublime编辑器的各种功能

    Postman 教程

    Postman 由Google 开发用来做接口请求测试,前后端开发人员都可以使用

    Git入门教程

    从入门到精通。

    热门服务端语言

    C 语言入门教程

    本教程从语法基础、进阶知识等各方面详解 C 语言。

    Go 入门教程

    本教程从 Go 语言的基本语法掌握到进阶编程实践

    Kotlin 教程

    从 Kotlin 的基础语法到高级特性一网打尽

    Ruby 入门教程

    本教程从 Ruby 的各种对象开始学习到 Ruby 的实际使用

    ThinkPHP 入门教程

    本教程主要讲解 ThinkPHP 框架如何上手开发应用

  • Java

    基础应用

    Java 入门教程

    深入浅出讲解 Java 语言基础知识,带你入门 Java 语言

    Android 入门教程

    为你解析最实用的 Android 技术,让你平滑上手,顺利进阶,为开发保驾护航

    算法入门教程

    分析讲解常见算法的思想及使用

    数据结构入门教程

    通俗易懂的带你了解 Java 数据结构

    Lambda 表达式教程

    本教程展现了Lambda表达式的基础语法以及在程序中的应用

    Java 并发原理入门教程

    本教程为Java并发原理入门教程,在Java程序开发中占据着举足轻重的地位

    设计模式入门教程

    带你分析最常见的九个设计模式

    Java并发工具

    本课程简洁明了展示最基本的并发工具类相关概念及应用方法。

    JVM 入门教程

    JVM 入门教程,对JVM结构进行分模块讲解,简单易懂。

    RabbitMQ 入门教程

    超系统的RabbitMQ基础知识课程,你还在等什么?

    网络编程入门教程

    Java 网络编程核心要点详解

    后端通用面试教程

    带你系统梳理后端高频面试题,轻松丰富你的校招&社招阶段

    框架应用

    Spring Boot 入门教程

    循序渐进讲解 Spring Boot 企业级应用开发

    Spring 入门教程

    通俗易懂 渐进式讲解 Spring 企业级开发应用

    Hibernate 入门教程

    由浅入深讲解 Hibernate 企业级 JDBC 应用框架

    MyBatis 入门教程

    本教程整理出“百分之二十”的知识,帮你办到“百分之八十”事情

    Spring MVC 入门教程

    通俗易懂讲解 Spring MVC 框架应用

    Swagger 入门教程

    本课程以图文并茂的方式带你学习 Swagger 核心知识和应用剖析

    Zookeeper 入门教程

    由浅入深的 学习 ZooKeeper 的基本使用以及高级使用

    Netty 教程

    由浅入深的讲解 Netty 的核心知识体系,快速上手使用和理解 Netty

    Spring Security

    本课程涵盖了 Spring Security 框架的基本原理和集成方法

    微服务

    Spring Cloud Hystrix

    系统介绍 Hystrix 支持特性与实际应用场景实战

  • Python

    基础应用

    Python 入门语法教程

    本教程带你从 Python 的基础语法开始学习 Python。

    Python 原生爬虫教程

    本教程从爬虫基础知识到进阶技巧到实际应用。

    Python 进阶应用教程

    本教程涵盖 Python 的面向对象、标准库解析、异常处理直至最后的领域应用

    Python 算法入门教程

    用 Python 代码实现常用算法并汲取算法核心思想。

    进阶方向应用

    Django 入门教程

    从 Web 基础到 Django 框架的实际开发应用

    Flask 框架教程

    Flask 框架快速入门实现一个 TodoList 功能

    NumPy 入门教程

    本教程从基础的数据类型开始到 NumPy 的高级应用一网打尽

    Scrapy 入门教程

    从爬虫基础开始到使用 Scrapy 框架抓取各大网站数据

    TensorFlow 入门教程

    通过本教程对 TensorFlow 框架快速入门

    Python 办公自动化教程

    本教程带你使用Python快速操作Excel、Word、PPT,处理各种文件

    Pandas 入门教程

    本教程从基础的数据类型开始到 Pandas 的高级应用一-网打尽

  • 数据库

    MySQL

    MySQL 入门教程

    本教程主要讲解 MySQL 增删改查等基础操作

    SQL 入门教程

    本教程讲解使用 SQL 访问和处理数据系统中的数据的方法。

    MySQL 进阶教程

    那些你还不理解的 MySQL 高阶特性一网打尽

首页 慕课教程 C 语言入门教程 C 语言入门教程 01 C 语言简介
精慕门1289550 · 更新于 2020-03-24

02 C 语言的程序结构

下一节

C语言简介

图片描述

图片来源于网络

1. C语言的起源

C 语言是一种高级语言,最初由 Dennis M. Ritchie [1] 为了开发一个操作系统而设计,最早在 1972 年在 DEC PDP-11 计算机上被首次实现。

2. 一次不务正业的发明

C 语言的发明和很多伟大的发明一样,都是一个人或者几个人不务正业闲着没事偶然间发明的。据说当时有一个年轻人为了能够在一台上机费更便宜的计算机上愉快的进行两人对战游戏,但不幸的是,这台机器上原有的操作系统只能支持一个人在线游戏,于是这位热爱游戏的年轻人不得不重新为这台机器编写一个新的操作系统,可以支持多用户,这样大家就可以一起同时在线玩这个游戏了。而在编写这个操作系统的过程中,他们对 B 语言进行了升级,于是 C 语言诞生了。

这个发明 C 语言的年轻人叫丹尼斯•里奇 Dennis M. Ritchie [1]。C 语言派生自 BCPL 语言,并且 C 语言对 BCPL 语言有了长足的扩展。因为 BCPL 简称为 B 语言,因此 C 语言就采用了字母表中的下一个字母来作为语言的名称。讲真这名字起得够随意的,不过话说回来了 B 语言这名字好像就是来自 A 语言的,有兴趣的同学可以去了解一下这三门语言之间的渊源,在这里我们就不多赘述了。

下面是一个 C 语言发展历史的列表:

语言 年份 开发者
Algol 1960 International Group
BCPL 1967 Martin Richard
B 1970 Ken Thompson
Traditional C 1972 Dennis Ritchie
K & R C 1978 Kernighan & Dennis Ritchie
ANSI C 1989 ANSI Committee
ANSI/ISO C 1990 ISO Committee
C99 1999 Standardization Committee
表1: C 语言发展历程 [3]

图片描述

图1: C 语言发明者 Dennis Ritchie [2]

3. C 语言的应用

了解了发明过程就大致知道了 C 语言的应用场景。基本的应用场景是操作系统的编写。

当然现在 C 语言的应用已经大大超出了这个范围。因为 C 语言与生俱来的特性是很容易与底层硬件打交道,所以目前 C 语言大量应用在需要直接硬件交互的场景。比如最近很多的物联网中的嵌入式设备,底层驱动,高性能计算,游戏后端服务,图形处理等等。

但是由于 C 语言不支持原生的面向对象的开发模式,因此有人说过,对于 C 语言,最大的工程就是开发一个操作系统。

如果你想开发更为复杂的系统,请使用别的语言。但是这不代表 C 语言已经过时了。恰恰相反, C 语言正在我们的生活中发挥着比以前更为重要的角色,你的手机,你的身边的智能终端,甚至你家的扫地机器人,都无时不刻都有 C 语言的身影。
图片描述

图2: 用 C 语言实现的 MP3 播放器 [4]

图片描述

图2: 用 C 语言实现的 MP3 播放器内部 [4]

4. C 语言的特点

C 语言有如下的特点:

  • 代码简洁不繁琐;
  • 具有良好的可移植性,代码与机器底层独立(相对于汇编语言而言);
  • 属于中层编程语言(底层的为汇编语言等,高层的为 Java 语言等);
  • 结构化语言;
  • 丰富的程序库可以使用;
  • 可以直接管理内存;
  • 运行速度快;
  • 提供了指针操作;
  • 可以使用递归;
  • 具有良好的扩展性。

5. C 语言的几个主要版本

从 C 语言发明到现在经历了如下的标准:

版本 标准 发布日期
K&R n/a 1978-02-22
C89 ANSI X3.159-1989 1989-12-14
C90 ISO/IEC 9899:1990 1990-12-20
C95 ISO/IEC 9899/AMD1:1995 1995-03-30
C99 ISO/IEC 9899:1999 1999-12-16
C11 ISO/IEC 9899:2011 2011-12-15

目前 C 语言执行的标准是 ISO/IEC 9899:2011,我们在课程中也会遵循此标准来完成代码。

6. 我们为什么要学习 C 语言

如果你想要从事下面的工作,那么 C 语言将是你非常好的一个选择:

  1. 从事需要直接操作操作硬件的编程的嵌入式设备开发,不需要操作系统的支持。比如我们常见的冰箱,洗衣机等等的控制;
  2. 嵌入式操作系统和实时操作环境下的开发;
  3. 基于 Linux 操作系统下的一些应用程序。主要是中间层面应用的开发,直接可以与底层硬件交互,而本身又不直接与最终用户进行交互;
  4. 音频和视频的解码器和编码器等;
  5. 协议栈的开发。

7. 学习基础

在这个教程中,大家最好能够对于 Linux 操作系统有使用经验。有简单的 Shell 命令使用经验。我们遇到的所有的操作基本都是通过命令行来进行的。虽然我也很喜欢图形界面操作,这也是趋势,但是 C 语言目前主要的应用场景都是在 Linux 下,所以大家最好学习一下相关的知识。

  • 划线
  • 写笔记
  • 复制

0/1000

 

下一节

02 C 语言的程序结构

我要提出意见反馈
· 最近更新于 请填写更新时间
使用手机查看
最近更新
向你推荐
更多
索引目录
C语言简介
1. C语言的起源
2. 一次不务正业的发明
3. C 语言的应用
4. C 语言的特点
5. C 语言的几个主要版本
6. 我们为什么要学习 C 语言
7. 学习基础
意见反馈 收藏教程 标记书签
使用 Ctrl+D 可将网站添加到书签
  • 企业服务
  • 网站地图
  • 网站首页
  • 关于我们
  • 联系我们
  • 讲师招募
  • 帮助中心
  • 意见反馈
  • 代码托管

Copyright© 2023 imooc.com All Rights Reserved | 京ICP备 12003892号-11 京公网安备11010802030151号

意见反馈 常见问题 APP下载
官方微信
返回顶部