C语言串讲语法资料

基础语法

C程序代码结构结构

1
#include ...
2
...
3
int main(int argc, char const *argv[])
4
{
5
    ...
6
    return 0;
7
}

C程序的生命周期

  1. 代码(*.h 和 *.c)
  2. 预编译后的代码(*.i)
  3. 编译(*.S)
  4. 链接(可执行程序)

声明型

  • 声明整数变量 int|long|long long|short|char|…

  • 声明浮点数变量 float|double|…

  • 声明指针 type *var;

  • 声明数组 type array[static_size];

  • 声明结构体 struct var_ID {...args};

  • 声明联合体 union var_ID {...args};

  • 声明类型别称 typedef [struct|union] typeID;

  • 声明函数指针 type (*func_p)(args...);

  • 声明函数体 [static|extern] type [[__cdecl | fastcal | stdcal]] function_ID(args...);

运算符

  • 数值运算符: + - * / %
  • 位运算符: << >> & | ^
  • 逻辑运算符: && || !
  • 层级运算符: ( )
  • 指针运算符: & *
  • 取尺寸运算符: sizeof
  • 递变运算符: ++ –
  • 复合赋值运算符: += -= /= *= %= &= ^= |= <<= >>=
  • 三元逻辑运算符: expression ? res1:res2

逻辑分支结构

if结构

1
2
// 多语句
3
    if (expression) 
4
    {
5
        stataments;
6
    }
7
8
//  单语句
9
    if (expression)
10
        statament;

switch结构

1
switch (expression)
2
{
3
    case static_value1:
4
    {
5
        stataments;
6
        [break]; //可选  但通常必选
7
    }
8
9
    case ...:
10
    {
11
        ....
12
    }
13
14
    default:
15
    {
16
        ....
17
    }
18
}

循环结构

for

for实际上是foreach,即遍历(对每一个)

1
//多语句情况
2
    for (statament1;statament2;statament3)
3
    {
4
        stataments;
5
        ...
6
    }
7
8
//单语句情况
9
    for (statament1;statament2;statament3)
10
        statament;

while

1
2
while(expression)
3
{
4
    stataments;
5
}

goto

1
2
loop_token:
3
    stataments;
4
5
goto loop_token;
6
...

递归循环

1
2
type func(args)
3
{
4
    ...
5
    return func(args);
6
}

宏指令

define

include

undef

if

ifdef

ifndef

elif

endif

error

LINE