目录

  • 1 C语言的介绍
    • 1.1 C语言的简单介绍及历史背景
    • 1.2 C语言的特点
    • 1.3 C语言程序的结构分析案例
    • 1.4 C语言程序的结构
    • 1.5 C语言程序的规范
    • 1.6 运行C语言程序的步骤和方法
  • 2 数据类型、运算符与表达式
    • 2.1 C语言的数据类型
    • 2.2 浮点型数据
    • 2.3 变量赋初值
    • 2.4 算数运算符和算数表达式
  • 3 最简单的C程序设计——顺序程序设计
    • 3.1 顺序程序设计
    • 3.2 数据的输入与输出
  • 4 选择结构程序设计
    • 4.1 关系运算符和关系表达式
    • 4.2 逻辑运算符和逻辑表达式
    • 4.3 if语句
    • 4.4 switch语句
  • 5 函数
    • 5.1 函数概念及无参函数的定义
    • 5.2 有参函数的定义
    • 5.3 函数的参数
    • 5.4 函数的返回值及调用
  • 6 循环控制
    • 6.1 While语句及Do...While语句
    • 6.2 用For语句实现循环
    • 6.3 For语句的几点说明
    • 6.4 循环的嵌套
  • 7 数组
    • 7.1 数组及一维数组的定义
    • 7.2 一维数组的引用与初始化
    • 7.3 二维数组
    • 7.4 字符数组
C语言的特点


C是高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。

C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。

C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型应用软件也是用C语言编写的。

C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

C语言文件由数据序列组成:可以构成二进制文件或文本文件。常用的C语言IDE(集成开发环境)有Microsoft Visual C++、Dev-C++、Code::Blocks、Borland C++ Builder、Watcom C++、GNU DJGPP C++、Lccwin32 C Compiler 3.1、High C,Turbo C、C-Free、Win-TC、Xcode等。

1、对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符,aligned_alloc函数以及<stdalign.h>头文件)。

2、_Noreturn 函数标记,类似于 gcc 的 __attribute__(noreturn)。

3、_Generic关键字。

4、多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,<threads.h>;头文件,里面包含了线程的创建和管理函数。

5、增强的Unicode的支持,基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>.

6、删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。

7、增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s()等等。

8、增加了更多浮点处理宏。

9、匿名结构体/联合体支持,这个在gcc早已存在,C11将其引入标准。

10、静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。

11、新的 fopen()模式,(“…x”),类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。

12、新增 quick_exit()函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。

13、_Atomic类型修饰符和<stdatomic.h>头文件。