1.字符
字符是C语言的最基本元素。编写程序时只能使用字符集中的字符,且区分大小写字母。
- 字母。
- 数字。
- 空白符:空格符、制表符、换行符等。
- 下划线:_。
- 标点符号、特殊字符。
2.关键字
关键字是具有特定含义的、专门用来说明C语言的特定成分的一类单词。
都由小写字母书写,且不能用于变量名或函数名等。
char | double |
enum | float |
int | long |
short | signed |
struct | union |
unsigned | void |
break | case |
continue | default |
do | else |
for | goto |
if | return |
switch | while |
auto | extern |
register | static |
const | sizeof |
typedef | volatile |
3.标识符
用于标识名字的有效字符序列。可以用来标识变量名、符号常量名、函数名、数组名和数据类型名等。
- 自定义标识符
(1) 只能由英文字母、数字和下划线三种字符组成,且第一个字符不为数字。
(2) 区分大小写字母。
(3) 不能与关键字和保留标识符重名。
(4) 不允许空格。
(5) 长度可以任意。
- 保留标识符
系统保留的一部分标识符,通常用于系统定义库函数的名字。
如:正弦函数sin()、打印函数printf()、编译预处理命令#define等
4.数据类型
数据类型:具有相同属性的数据集合。
数据类型决定数据的表示形式、占据存储空间大小、数据的取值范围和运算方式。
基本类型 | 整型(int) | |
实型(浮点型) | 单精度(float) | |
双精度(double) | ||
字符型(char) | ||
枚举类型(enum) | ||
构造类型 | 数组类型(array) | |
结构体类型(struct) | ||
共用体类型(union) | ||
指针类型(point) | ||
空类型(void) |
5.常量
常量:在程序运行的整个过程中,其值始终不变的量。
直接常量 | 数值常量 | 整型常量 |
实型常量 | ||
字符型常量 | 字符常量 | |
字符串常量 | ||
符号常量(标识符) |
- 整型常量
①十进制整型常量:可以有“+”、“-”符号。
②八进制整型常量:以“0”开头。
③十六进制整型常量:以“0x”或“0X”开头。
一个整型常量后缀l或L则为长整型常量(即long int类型)。
- 实型常量
只能用十进制表示,可以有“+”、“-”符号。
①小数形式:“0.2”、“.2”、“3.”。
②指数形式:“1.234e2(即123.4)”、“3.7E-2(即0.037)”.
- 字符常量
用单引号括起来的一个字符。以其ASCII码值参与运算。
转义字符:将“\”后的字符转换为其他意义。
\n | 换行,将当前位置移到下一行开头 |
\t | 水平位移,跳到下一个Tab位置 |
\b | 退格,将当前位置移到前一列 |
\r | 回车,将当前位置移到本行开头 |
\f | 换页,将当前位置移到下一页开头 |
\\ | 反斜杠字符“\” |
\’ | 单引号字符“’” |
\” | 双引号字符“”” |
\0 | 空字符 |
\a | 响铃(声音警报) |
\ddd | 1~3位八进制数所代表的字符 |
\xhh | 1~2位十六进制数所代表的字符 |
- 字符串常量
用双引号括起来的字符序列。在内存中存储时系统自动在每一个字符常量的尾部加一个字符串结束标志,即“\0”。
- 符号常量
可使用宏定义#define定义符号常量。
6.变量
变量:程序运行过程中,其值可以改变的量。
变量的定义:有变量名、变量类型,先定义后使用,使用前需赋值。不可重复定义。
变量的初始化:定义变量时赋一个初值。
- 整型变量
各类整型变量所分配的字节数和取值范围不同。
一般整型(int;4)、短整型(short;2)、
长整型(long;4)、无符号整型(unsigned;4)。
- 实型变量
有效数字有限,存在误差。
单精度型(float;4;6~7);
双精度型(double;8;15~16);
长双精度型(long double)。
- 字符变量
存放一个字符的变量。
以其ASCII值参与运算(可看成整型变量)。
7.运算符和表达式
运算符:用来表示各种运算的符号。
表达式:用运算符把运算对象连接起来符合C语言语法规则的句子。运算可得表达式的值。
运算符 | 含义 | 运算量个数 | 结合性 |
( ) | 括号 | 单目 | 自左至右 |
[ ] | 下标 | ||
-> | 指向成员 | ||
. | 成员 | ||
! | 逻辑非 | 单目 | 右结合 |
~ | 按位取反 | ||
++、-- | 自加、自减 | ||
- | 负号 | ||
(类型) | 强制类型转换 | ||
*、& | 指针和地址 | ||
sizeof | 取长度 | ||
*、/、% | 乘、除、求余 | 双目运 | 自左至右 |
+、- | 加、减 | ||
<<、>> | 位移 | ||
<、<=、>、>= | 关系 | ||
==、!= | 关系 | ||
& | 按位与 | ||
^ | 按位异或 | ||
| | 按位或 | ||
&& | 逻辑与 | ||
|| | 逻辑或 | ||
?: | 条件 | 三目 | 右结合 |
+=、=、-=、*=、 | 赋值 | 双目 | |
/=、%= | |||
<<=、>>=、 | 组合运算 | ||
&=、|=、^= | |||
, | 逗号 | 双目 | 自左至右 |
- 算术运算符
求余运算符“%”只能用于整型。
- 自增、自减运算符
前缀形式:使用变量前自增(自减)。
后缀形式:使用变量后自增(自减)。
- 赋值运算符
左侧只能是变量,不能是常量或表达式。
两边类型不同时会进行类型转换。
- 关系运算符
只有真(1)假(0)两种值,实型存在误差。
- 逻辑运算符
!a:a为0则为真;a非0则为假。
a&&b:a、b均非0则为真。
a||b:a、b任有非0则为真。
- 条件运算符
a?b:c :a为真则b;a为假则c。
- 逗号运算符
值为最后一个表达式的值。
- 强制类型转换运算符
原变量类型不改变。
自动类型转换:低精度→高精度
强制类型转换:(类型)(表达式)
8.基本语句
- 表达式语句:表达式;
- 函数调用语句:函数名(参数);
- 空语句:;
- 控制语句:
在程序中完成特定功能。
如:If、switch、for、while、do…while、break、continue、goto、return。
- 复合语句:
{语句组},后不带分号。
9.数据的输入、输出
①字符输出函数
putchar(c);
c可以是一个字符变量、字符常量、整型变量、整型常量或转义字符。
②字符输入函数
getchar( );
③格式输出函数
printf(“格式控制字符串”,输出项列表);
格式控制字符串:%+格式说明字符
输出项列表:可为0个,可为多个。
格式说明字符 | 功能 |
d | 带符号的十进制整数 |
o | 无符号的八进制整数 |
X,x | 无符号的十六进制整数 |
u | 无符号的十进制整数 |
c | 单个字符 |
s | 字符串 |
f | 实数(隐含6位小数) |
E,e | 以指数形式输出实数(隐含6位小数) |
G,g | 选择f和e格式中宽度较小的格式输出,且不输出无意义的0 |
附加格式说明符 | 功能 |
- | 左对齐输出(默认为右对齐) |
m | 输出宽度为m,超出则按实际输出 |
n | 输出n为小数,或输出前n个字符 |
l | ld输出long型;lf、le输出double型 |
h | 用于d、o、u、x或X,输出短整型 |
0 | 指定左面不使用的空格位置自动填0 |
④格式输入函数
scanf(“格式控制字符串”,输入地址列表);