c语言

数据类型

基本数据类型

类型 关键字 大小 描述
整型 int 通常4字节 用于存储整数
浮点型 float 4字节 单精度浮点数
双精度 double 8字节 双精度浮点数
字符型 char 1字节 存储单个字符

派生数据类型

类型 描述
数组 相同类型元素的集合
指针 存储变量的内存地址
结构体 不同类型的组合
联合体 同一时间只能存储一个成员
枚举 定义一组具名整数常量

修饰符

修饰符 描述
signed 可以表示正负数
unsigned 只能表示非负整数
short 占用内存较少,通常为2字节
long 占用较大内存,通常为4或8字节

类型限定符

限定符 描述
const 定义常量,变量值不能被修改
volatile 变量值可被外部修改
restrict 限定指针仅用于访问该对象

数据类型汇总

类型 大小 范围 精度
int 4字节 -2,147,483,648 到 2,147,483,647 -
unsigned int 4字节 0 到 4,294,967,295 -
short 2字节 -32,768 到 32,767 -
unsigned short 2字节 0 到 65,535 -
long 4或8字节 -2,147,483,648 到 2,147,483,647 -
unsigned long 4或8字节 0 到 4,294,967,295 -
float 4字节 1.2E-38 到 3.4E+38 6位有效数字
double 8字节 2.3E-308 到 1.7E+308 15位有效数字
long double 12或16字节 3.4E-4932 到 1.1E+4932 19位有效数字
char 1字节 -128 到 127 或 0 到 255 -
signed char 1字节 -128 到 127 -
unsigned char 1字节 0 到 255 -

运算符

符号 操作类型 结合性
[] () . -> 表达式 从左到右
++ -- (后缀) 表达式 从左到右
sizeof & * + - ~ ! 一元操作 从右到左
++ -- (前缀) 一元操作 从右到左
typecasts 一元操作 从右到左
* / % 乘法 从左到右
+ - 加法 从左到右
<< >> 按位移动 从左到右
< > <= >= 关系 从左到右
== != 相等,不等 从左到右
& 按位”与” 从左到右
^ 按位”异或” 从左到右
按位”与或” 从左到右
&& 逻辑”与” 从左到右
逻辑”或” 从左到右
?: 条件表达式 从右到左
= *= /= %= += -= <<= >>= &= ^= 简单和复合赋值 从右到左
, 顺序计算 从左到右

控制结构

条件语句

  • if 语句
1
2
3
if (条件) {
// 条件为真时执行的代码
}
  • if-else 语句
1
2
3
4
5
6
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}

  • else if 语句
1
2
3
4
5
6
7
8
if (条件1) {
// 条件1为真时执行
} else if (条件2) {
// 条件2为真时执行
} else {
// 所有条件均为假时执行
}

  • switch 语句
1
2
3
4
5
6
7
8
9
10
11
switch (变量) {
case1:
// 执行代码
break;
case2:
// 执行代码
break;
default:
// 所有case都不匹配时执行的代码
}

循环语句

  • for

    1
    2
    3
    4
    for (初始化; 条件; 更新) {
    // 循环体
    }

  • while

    1
    2
    3
    while (条件) {
    // 循环体
    }
  • do-while

    1
    2
    3
    do {
    // 循环体
    } while (条件);
  • break 和 continue

  • break: 跳出循环或 switch 语句。

  • continue: 跳过当前循环的剩余部分,进入下一次循环。

数组