C程序语法(无左递归) <程序> —〉 <外部声明> | <函数定义> <外部声明> —〉<头文件> | <变量> | <结构体> <头文件> —〉 #include<文件名> <文件名> —〉 stdio.h丨stdlib.h丨string.h <结构体> —〉 <结构体声明〉|<变量> <结构体声明> —〉 struct<标识符> <函数定义> —〉 <类型说明><标识符><参数列表><复合语句> <参数列表〉 —〉<类型说明><变量名> <复合语句> —〉<变量>|<语句>|<复合语句>|& <语句> —〉<表达式语句〉|<选择语句>|<循环语句>|<跳跃语句>|<语句>|& <表达式语句> —〉 <赋值表达式>|<关系表达式>|<逻辑表达式>|<表达式语句>|& <赋值表达式> —〉 =A/A= A —> &|+|- <关系表达式> —> 〉| < | 〉=| <= <逻辑表达式> —〉 + | - | * | / <选择语句> —〉 if else语句|switch语句|<选择语句>|& <循环语句> —〉 for语句|while语句|do while语句|<循环语句>|& <跳跃语句> —> return语句|break语句|continue语句 <变量> —> <类型>丨<标识符>丨<变量值> <类型说明> —> int丨char丨double丨float丨long <变量值> —> <字母>丨〈数字〉 <标识符> 〈==〉 S S —> AS1 S1 —> S1S2 S2 —> A|B|& A —> a|b|c|……y|z B —> 0|1|2|3|4|5|6|7|8|9 <字母> —> a|b|c|……y|z <数字> 〈==〉 S S —> AS1 S1 —> S1AS2 S2 —> &|0 A —> 1|2|3|4|5|6|7|8|9