2.1.1 C语言的发展及标准
- C语言:一种通用的、面向过程的计算机程序设计语言(第三代高级语言)
- 1972年,为了移植与开发UNIX操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了C语言
- 为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会
- 1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截止2020年,最新的C语言标准为2018年6月分布的“C18”等
2.1.2 C语言的特点
- 语言简洁
- 运算符丰富
- 数据类型丰富
- 具有结构化的控制语句
- 可直接访问物理地址(增加访问方式;可对某个地址直接访问,跳过寻找步骤)
- 生成目标代码质量高,程序执行效率高
- 程序可移植性好
- 语法限制不太严格,程序设计自由度大
2.2.1 C语言程序的结构
一个C程序(项目过程)里,包含若干个源程序文件,一个源程序文件里,包含以下部分:预处理命令、数据声明、若干个函数
其中预处理命令不属于C语言的构成但是C语言的部分,在编译之前完成,存在是为了C语言的更好完成
函数是程序的基本单位,函数里有两部分:函数首部和函数体
函数体里有两部分:数据声明和执行语句
C语言文件后缀多以“.c”结尾,C++文件后缀多以“.cpp”结尾
- 一个C语言源程序可以由一个或多个源文件组成
- 每个源文件可由一个或多个函数组成
- 一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数
- 源程序中可以有预处理命令,预处理命令通常应放在源文件或源程序的最前面
- 每一个语句都必须已分号结尾
- 标识符、关键字之间必须以空白符(空格 / 回车 / tab)间隔
2.2.2 输入、调试、运行程序的一般过程
//预处理(文件包含);<>里的为头文件,"stdio.h"为标准的输入/输出头文件==》引用"printf"
#include<stdio.h>
int main()
{printf("Hello World!");return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/c73671540c224ae28dda7e994f5f124f.png)
2.3.1 常量
- 常量:在程序运行过程中,其值不能被改变的量
- 直接常量(字面常量)
- 整型常量(“%d”):100,25,-100,0 (-100的‘-’为单目运算符,5-2的‘-’为双目运算符)
- 实型常量(“%f”,浮点数):3.14,0.125,-3.789
- 字符常量(“%c”, ’ ’ 包裹,中间不为空,只能包含一个字符,若多个,只输出最后一个字符):‘a’ , ‘b’ , ‘2’
- 字符串常量( " " 包裹,中间可为空):“a” , “ab”
- 符号常量(间接常量)
- 转义字符
整型常量
十进制整数:如123,-455,4
八进制整数:以0开头的数是八进制数,如010 》i》8
十六进制整数:以0X或0x开头的数是十六进制数,如0X10==》16
实型常量
实型也称浮点型,实型常量也称实数或浮点数
小数形式:3.14,0.125,-3.789
指数形式:3e-3,-1e3,1.8e-3,-123e-6
字母e或E之前必须有数字,且e后面的指数必须为整数
e():10的多少次方
转义字符
有些以“\”开头的特殊字符称为转义字符
\n:换行(光标会由上一行跳至下一行的同一列,换行不换列)
\t:横向挑格(一次跳8位,覆盖原有字符,保证保留一个空白符,超过8就到下一个制表位)
\r:回车(光标移至当前行的行首,换列不换行)
\:反斜杠
':单引号
":双引号
\b:退格
\ddd:ddd表示1到3位八进制数字
\xhh:hh表示1到2位十六进制数字
printf('abcdef\r123')
==》123def
printf('abcd\bef\b123')
==》abce123
printf('\82#')
==》82#
printf('\101#\x41#\\X41')
==》A#A#\X41
字符串常量
一对双引号括起来的字符序列,可含一个或多个字符
C规定以字符‘\0’作为字符串结束标志,以便系统据此判断字符串是否结束。
字符串常量占的内存字节数等于字符串中字节数加1(0的字节数)
printf('12\0abc')
==》12
符号常量
格式:#define 标识符 常量
如:#define PI 3.14
#define不是C语句,是一个预处理(预编译)命令,该行的末尾没有分号
习惯上,符号常量名用大写,变量名用小写,以示区别
使用符号常量的好处:含义清楚,一改全改