非常教程

C参考手册

C 语法

Statements

语句是按顺序执行的C程序的片段。任何函数的主体都是一个复合语句,而这个语句又是一系列的语句和声明:

int main(void)
{ // start of a compound statement
    int n = 1; // declaration (not a statement)
    n = n+1; // expression statement
    printf("n = %d\n", n); // expression statement
    return 0; // return statement
} // end of compound statement, end of function body

有五种类型的陈述:

1)复合陈述

2)表达式语句

3)选择陈述

4)迭代语句

5)跳转语句

标签

任何语句都可以标记,通过在语句本身之前提供一个名字后跟一个冒号。

identifier : statement

(1)

case constant_expression : statement

(2)

default : statement

(3)

1)转到目标。

2)switch语句中的case标签。

3)switch语句中的默认标签。

任何语句(但不是声明)之前都可以有任意数量的标签,每个标签声明标识符是标签名称,在封装函数中它必须是唯一的(换句话说,标签名称具有函数范围)。

标签声明对其本身没有影响,不会改变控制流,或以任何方式修改后面的语句的行为。

复合语句

复合语句或是括号括起来的语句和声明序列。

{ statement | declaration...(optional) }

(1)

复合语句允许将一组声明和语句分组到一个单元中,这些单元可用于预期单个语句的任何位置(例如,在if语句或迭代语句中):

if (expr) // start of if-statement
{ // start of block
  int n = 1; // declaration
  printf("%d\n", n); // expression statement
} // end of block, end of if-statement

每个复合语句都引入了自己的块范围。

具有自动存储持续时间的变量的初始值设定项在声明块内声明,VLA声明符在控制流按顺序通过这些声明时执行,就像它们是声明一样:

int main(void)
{ // start of block
  { // start of block
       puts("hello"); // expression statement
       int n = printf("abc\n"); // declaration, prints "abc", stores 4 in n
       int a[n*printf("1\n")]; // declaration, prints "1", allocates 8*sizeof(int)
       printf("%zu\n", sizeof(a)); // expression statement
  } // end of block, scope of n and a ends
  int n = 7; // n can be reused
}

表达式语句

一个表达式后跟一个分号是一个声明。

expression(optional) ;

(1)

典型C程序中的大多数语句都是表达式语句,例如赋值或函数调用。

没有表达式的表达式称为空语句。它通常用于为for或while循环提供一个空的主体。它也可用于在复合声明结尾处或声明之前携带标签:

puts("hello"); // expression statement
char *s;
while (*s++ != '\0')
    ; // null statement

选择语句

选择语句根据表达式的值在几个语句之一之间进行选择。

if ( expression ) statement

(1)

if ( expression ) statement else statement

(2)

switch ( expression ) statement

(3)

1)if 陈述

2)如果语句带有else子句

3)切换语句

迭代报表

迭代语句重复执行语句。

while ( expression ) statement

(1)

do statement while ( expression ) ;

(2)

for ( init_clause ; expression(optional) ; expression(optional) ) statement

(3)

1) while loop

2) do-while loop

3) for loop

跳转语句

跳转声明无条件传输流量控制。

break ;

(1)

continue ;

(2)

return expression(optional) ;

(3)

goto identifier ;

(4)

1)break语句

2) continue 语句

3)带有可选表达式的return语句

4)goto声明

C 语法相关

1.#define directive
2.#elif directive
3.#else directive
4.#endif directive
5.#error directive
6.#if directive
7.#ifdef directive
8.#ifndef directive
9.#include directive
10.#line directive
11.#pragma directive
12.alignas
13.Alternative operators and tokens
14.Analyzability
15.Arithmetic operators
16.Arithmetic types
17.Array declaration
18.Array initialization
19.ASCII Chart
20.Assignment operators
21. types
22.Basic concepts
23.Bit fields
24.break statement
25.C language
26.C Operator Precedence
27.cast operator
28.character constant
29.Comments
30.Comparison operators
31.compound literals
32.Conditional inclusion
33.Conformance
34.const type qualifier
35.Constant expressions
36.continue statement
37.Declarations
38.do-while loop
39.Enumerations
40.Escape sequences
41.Expressions
42.External and tentative definitions
43.File scope
44.floating constant
45.for loop
46.Function declarations
47.Function definitions
48.Functions
49.Generic selection
50.goto statement
51.Identifier
52.if statement
53.Implicit conversions
54.Increment/decrement operators
55.Initialization
56.inline function specifier
57.integer constant
58.Lifetime
59.Logical operators
60.Lookup and name spaces
61.Main function
62.Member access operators
63.Memory model
64.Objects and alignment
65.Order of evaluation
66.Other operators
67.Phases of translation
68.Pointer declaration
69.Preprocessor
70.restrict type qualifier
71.return statement
72.Scalar initialization
73.Scope
74.sizeof operator
75.static assert declaration
76.Static storage duration
77.Storage-class specifiers
78.string literals
79.Struct and union initialization
80.Struct declaration
81.switch statement
82.Thread storage duration
83.Type
84.Type
85.Typedef declaration
86.Undefined behavior
87.Union declaration
88.Value categories
89.Variadic arguments
90.volatile type qualifier
91.while loop
92._Alignof operator
93._Noreturn function specifier
C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。