1. C 语言的基本组成

1.1 C语言有什么

1)数据类型

  • C语言提供了很多数据类型,其中基本类型包括字符、具有多种长度的整型和浮点数等。另外还通过指针、数组、结构和联合派生的各种数据类型。
  • 运算符与操作数构成了表达式。
  • 任何表达式,包括函数调用表达式、赋值表达式,加句尾加分号后都成为了一个语句。
  • 指针提供了与具体机器无关的地址算术运算。

2)流程控制:C语言提供了基本的控制流结构:语句块、条件判断、多路选择、循环与跳出循环。

3)函数

  • 返回类型可以是基本类型、结构、联合或指针类型;
  • 任何函数可以递归调用;
  • 函数内定义的变量是局部变量;

4)预处理:编译的预处理阶段将对程序文本进行宏替换、包含其他源文件以及进行条件编译。

1.2 C语言没有什么

C语言不提供直接处理诸如字符中、集合、列表或数组等复合对象的操作;
除了由函数的局部变量提供的静态定义和堆栈外,C语言没有定义任何存储器分配工具,也不提供堆和无用的内存回收工具;
C语言没有输入/输出功能,没有READ或WRITE语句,也没有内置文件访问的方法。

上面这些方法必须显式地调用函数,C语言一般采用标准库来实现这些函数。

C语言只提供了那几种简单的结构控制流程,不提供多道程序设计、并行操作、同步和协同例程。

从上面看出,C语言本身是一个很小的集合,让一些与系统有关的功能 (因为各个系统可以机制不一样,所以全包括在C语言内,太臃肿)由标准库来完成,可以保证平台的移植性。

2. 变量与表达式

  • 变量与常量是程序处理的两种基本的数据对象 ;
  • 声明语句说明变量的名字与类型,也可以指定变量的初值;
  • 运算符指定要进行的操作;
  • 表达式则把变量与常量组合在一起生成新的值;
  • 对象的类型决定了该对象可以取值的集合以及可以对该对象执行的操作;

2.1 变量与常量

不带限定符的char类型对象是否带符号取决于具体机器,但可以打印的字符总是正值。
有关类型长度定义的符号常量以及其他与机器和编译器有关的属性可以在标准头文件和中找到。

用八进制与十六进制表示转义字符。
'\ooo'八进制表示转义字符,其中ooo表示1~3个八进制数(0~7)
'\xhh'十六进制表示转义字符,其中hh是一个或多个十六进制数字。