C语言入门(1)
程序的基本概念
即用计算机语言描述的解决某一问题的一系列加工步骤,是符合一定语法规则的符号序列。
程序设计就是借助计算机语言,告诉计算机要处理什么(处理数据)以及如何处理。
程序设计语言
-
机器语言
指计算机能够识别的指令集合,每条指令都用二进制0和1组成的序列来表示。
计算机可以直接执行,且执行效率高。
-
汇编语言
采用的一些助记符号来表示机器语言的机器指令,助记符号一般采用代表某种操作的英文单词的缩写。
用汇编语言编写的程序称为源程序,计算机不能直接执行,必须通过汇编程序翻译成机器语言才能执行。
-
高级语言
面向算法过程的语言,接近自然语言的形式,一条语句相当与多条汇编语言指令或机器语言指令。
不能直接执行高级语言源程序,必须经过编译和连接过程,将其翻译成机器语言程序才能由计算机执行。
-
面向任务的程序设计语言
非过程化语言,无须知道问题如何求解,只需要描述求解什么问题,便可编程实现。
数据库便是一种面向任务的程序设计语言。这类语言被广泛应用在管理信息系统应用软件的开发方面。
-
面向对象的程序设计语言
具有类的定义功能,对象的生成功能,消息传递机制和类的继承机制。
如:Java
什么是编程语言
通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。
举例来说:作为班长的小明需要让小红做一件事,但前提要给小红(用语言)传达一个任务的信息(指令),而这个语言必须是小红能听懂的,如果说的是方言或者其它语种,自然小红会一脸懵,如果都是用普通话交流(固定的格式和词汇)那么就能让小红明白小明的意思,小红也就能成功的完成这件事情了(运行完成)。
编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守才能实现我们的目的。
编写源代码的过程就叫做编程(Program)。从事编程工作的人叫程序员(Programmer)。
什么是C语言
C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
C语言的特点
(1)是一种结构化语言
C语言的主要成分是函数。函数是C语言程序的基本结构模块。
(2)语言简洁紧凑,使用方便灵活
一共有32个保留字和9种控制语句,程序书写自由。
(3)易于移植
C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。
(4)强大的处理能力
引入了结构、指针、地址、位操作、寄存器等功能,在许多方面具有汇编语言的特点,从而提高了语言的处理能力。
(5)可生成高质量、目标代码执行效率高的程序
与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
C语言的基本结构
-
头文件包含(一组#include命令)
-
用户自定义函数声明
-
主函数main()
-
若干用户自定义函数的定义
备注:
- 所有的 C 语言程序都需要包含 main() 函数。 代码从 main() 函数开始执行。
- /* ... */ 用于注释说明。
- printf() 用于格式化输出到屏幕。printf() 函数在 "stdio.h" 头文件中声明。
- stdio.h 是一个头文件 (标准输入输出头文件) , #include 是一个预处理命令,用来引入头文件。 当编译器遇到 printf() 函数时,如果没有找到 stdio.h 头文件,会发生编译错误。
- return 0; 语句用于表示退出程序。
3种基本控制结构
-
顺序结构
-
分支结构/选择结构
-
循环结构
C语言字符集、标识符与关键字
- 字符集
1) 字母
小写字母a~z共26个,大写字母A~Z共26个。
2) 数字
0~9共10个数字。
3) 空白符
空格符、制表符(Tab键)、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略不计。
因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。
4) 标点和特殊字符
如加号 + 减号 - 分号 ; 逗号 , 等。
- 标识符
由字母(A~Z, az)、数字(09)和下划线(_)组成,并且首字符必须是字母或下划线。
合法标识符:
a, x, x3, BOOK_1, sum5
非法标识符:
3s 不能以数字开头
sT 出现非法字符
-3x 不能以减号(-)开头
bowy-1 出现非法字符减号(-)
注意:
①不同编译系统对标识符长度都有自己的规定。
②在标识符中,大小写是有区别的,例如A1 和 a1 是两个不同的标识符。
- 关键字
关键字指具有特殊含义的标识符,不能用作变量名、常量名或函数名来使用,只能根据系统的规定使用。
auto声明自动变量
short声明短整型变量或函数
int声明整型变量或函数
long声明长整型变量或函数
float声明浮点型变量或函数
double声明双精度变量或函数
char声明字符型变量或函数
struct声明结构体变量或函数
union声明共用数据类型
enum声明枚举类型
typedef用以给数据类型取别名
const声明只读变量
unsigned声明无符号类型变量或函数
signed声明有符号类型变量或函数
extern声明变量是在其他文件正声明
register声明寄存器变量
static声明静态变量
volatile说明变量在程序执行中可被隐含地改变
void声明函数无返回值或无参数,声明无类型指针if条件语句else条件语句否定分支(与 if 连用)
switch用于开关语句
case开关语句分支
for一种循环语句
do循环语句的循环体
while循环语句的循环条件
goto无条件跳转语句
continue结束当前循环,开始下一轮循环
break跳出当前循环
default开关语句中的“其他”分支
sizeof计算数据类型长度
return子程序返回语句(可以带参数,也可不带参数)循环条件
C99 新增关键字
_Bool _Complex _Imaginary inline restrict
C11 新增关键字
_Alignas _Alignof _Atomic _Generic _Noreturn
_Static_assert _Thread_local
C语言的主要语法单位
常量:在程序运行过程中,其值不能被改变的量
- 直接常量(字面量) 可以立即拿来用,无需任何说明的量,例如:
整型常量:12、0、-3;
实型常量:4.6、-1.23;
字符常量:‘a’、‘b’。 - 符号常量 用标识符代表一个常量。在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。
说明:符号常量在使用之前必须先定义,其一般形式为:
#define 标识符 常量
习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。
变量:其值可以改变的量称为变量
- 允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
- 最后一个变量名之后必须以“;”号结尾。
- 变量定义必须放在变量使用之前。一般放在函数体的开头部分。
在变量定义中赋初值的一般形式为:
类型说明符 变量1= 值1, 变量2= 值2, ……;