<程序>→<外部声明>|<程序><外部声明>

<外部声明>→<函数定义>|<声明>

<函数定义>→<类型说明><声明><复合语句>

<类型说明>→void|char|int |float

<声明>→<指针直接说明符>|<直接说明符>

<指针>→’*‘|'*'指针

<直接说明符>→<标识符>|<直接说明符‘[’‘]’>|<直接说明符‘[’常数表达式‘]’> |<标识符‘(’参数列表‘)’>|<标识符><‘(’‘)’>>|<直接说明符><','><标识符列表>

<标识符列表>→<:标识符>|<标识符列表><','><标识符>

<常数表达式>→<条件表达式>

<参数列表>→<参数声明>|<参数列表><','><参数声明>

<参数声明>→<声明说明符><标识符>

<复合语句>→<‘{’><‘}’>|<'{'><语句列表><'}'>|<'{'><声明列表><语句列表><'}'>

<声明列表>→<声明>|<声明列表><声明>

<声明>→<初始化声明>|<初始化声明列表><‘,’><初始化声明>

<初始化声明>→<声明>|<声明><‘=’><初始化程序>

<初始化程序>→<赋值表达式>|<‘{’><初始化程序列表><‘}’>|<'{'><初始化程序列表><','><'}'>

<初始化程序列表>→<初始化程序>|<初始化程序列表><‘,’><初始化程序>

<语句列表>→<语句>|<语句列表><语句>

<语句>→<复合语句>|<表达式语句>|<选择语句>|<循环语句>|<跳跃语句>

<表达式语句>→<';'>|<表达式><';'>

<选择语句>→<:><if><'('><表达式><')'><语句>|<if><'('><表达式><')'><语句><else><语句>

<循环语句>→<while><'('><表达式><')'><语句>|<for><'('><表达式语句><表达式语句><')'><语句>|<for><'('><表达式语句><表达式语句><表达式><')'><语句>

<跳跃语句>→ CONTINUE< ';'>| BREAK <';'>| RETURN <';'>| RETURN <表达式> <';'>

<表达式>→<:><赋值表达式>|<表达式><','><赋值表达式>

<赋值表达式>→<条件表达式>|<一元表达式><赋值操作符><赋值表达式>

<条件表达式>→<逻辑或表达> | <逻辑或表达><‘?‘> <表达式>< ‘:‘><条件表达式>

<逻辑或表达>→<逻辑与表达>  |< 逻辑或表达 或运算><逻辑表达式>

< 逻辑与表达>:<或表达式> |< 逻辑表达式 >和<运算或表达式>

< 或运算表达式>→<异或表达式> |< 或运算表达式 ><‘>|<‘>< 异或表达式>

< 异或表达式>:<与表达式> | < 异或表达式><‘^‘><与表达式>

< 与表达式>:<相等表达式> |< 与表达式><‘&‘><相等表达式>

< 相等表达式>:<关系表达式> |< 相等表达式等于运算关系表达式> | <相等表达式不等于运算关系表达式>

< 关系表达式>:<移位表达式> | <关系表达式><‘<‘><移位表达式 >|< 关系表达式><‘>‘><移位表达式>  |<  关系表达式小于等于运算移位表达式> |< 关系表达式大于等于运算移位表达式>

< 移位表达式>:<加法表达式> | <移位表达式左运算加法表达式>  |< 移位表达式右运算加法表达式>

< 加法表达式:<乘法表达式> |< 加法表达式><‘+‘><乘法表达式> |< 加法表达式><‘-‘><乘法表达式>

< 乘法表达式>:<强制转换表达式> | <乘法表达式><‘*‘><强制转换表达式> | <乘法表达式><‘/‘><强制转换表达式 >| <乘法表达式><‘%‘><强制转换表达式>

<  强制转换表达式>:<一元表达式>  |<  ‘(‘>< 类型名称 ><‘)‘><强制转换表达式>

<一元表达式>:<后缀表达式> | <INC运算一元表达式> |< DEC运算一元表达式> |< 一元运算符将表达式> | < 结构体变量的一元表达式 >| < 结构体变量的><‘(‘>< 类型名称>< ‘)‘>

<后缀表达式>:<基本表达式> | <后缀表达式><‘[‘><表达式><‘]‘>  |< 后缀表达式><‘(‘ ><‘)'> | <后缀表达式>< ‘(‘><参数表达式列表><‘)‘ >  | <后缀表达式><‘.‘>< 标识符 >| <后缀表达式指针运算标识符>    |< 后缀表达式INC运算>  |< 后缀表达式DEC运算>

<基本表达式>→<标识符>  |<常量 >| <字符串常量> | < ‘(‘><表达式><‘)‘>

<参数表达式列表>:< 赋值表达式 >| <参数表达式列表><‘,‘><赋值表达式>

<一元运算符>:< ‘&‘>  | < ‘*‘>  | < ‘+‘>  | < ‘-‘>  | < ‘~‘>  |<  ‘!‘>

<赋值运算符>→<‘=‘>  |< 乘法分配> | <DIV分配> |< MOD分配> | <加法分配>  | < SUB分配>  |< 左分配 >| <右分配与分配>|< 异或分配 >|<或分配>

<存储类说明符>→<定义类型> |< 外部变量> |< 静态  >|< 自动>  | <寄存器>

<结构或联合说明符>:<结构或联合标识符><‘{‘><结构体声明列表><‘}‘>  |< 结构或联合><‘{'><结构体声明列表><‘}‘ > |< 结构或联合标识符>

<结构或联合>:<结构体> |< 联合>

<结构体声明列表>:<结构体声明> |< 结构体列表声明结构体声明>

<结构体声明>:<说明符限定符列表结构说明符><‘;‘>

<说明符说明符限定符列表> →<类型说明符说明符限定符列表> |< 类型说明符>  |< 类型限定符说明符限定符列表 >| <类型限定符>

<结构说明符列表>→<结构体声明> |< 结构说明符列表><‘,‘><结构体声明>

<结构体声明>→<:><声明 >| < ‘:‘><常量表达式> |< 声明><‘:‘><常量表达式>

<枚举声明>→<枚举><‘{‘><枚举器列表><‘}‘>  | <枚举标识符><‘{‘><枚举器列表><‘}‘>  | <枚举标识符>

<枚举器列表>→<枚举器> | <枚举器列表><‘,‘>

<枚举器枚举器>→<标识符 >|< 标识符><‘=‘><常量表达式>

<类型限定符>→<常量 >|< 易失的>

<类型限定符列表>→<类型限定符> | <类型限定符列表><  类型限定符>

<参数类型列表>→<参数列表> | <参数列表><‘,‘><省略符号>

<参数列表>→<:><声明参数> |< 参数列表><‘,‘><声明参数>

<抽象说明符>→<指针> | <直接抽象说明符> | <指针直接抽象说明符>

<直接抽象说明符>→ <‘(‘> <抽象说明符 ><‘)‘ > |<  ‘[‘ ><‘]‘  >| < ‘[‘>< 常量表达式><‘]‘>| <直接抽象说明符><‘[‘>< ‘]‘>  | <直接抽象说明符><‘[‘>< 常量表达式>< ‘]‘>  | < ‘(‘>< ‘)‘>  | < ‘(‘><参数类型列表><‘)‘>  |<  直接抽象说明符><‘(‘>< ‘)‘>  | <直接抽象说明符><‘(‘><参数类型列表><‘)‘>

<有标号语句>→<标识符><‘:><‘语句> |  <CASE常量表达式><‘:‘><语句 > | < DEFAULT><‘:‘><语句>

1029对c语言文法的理解的更多相关文章

  1. 1029-c语言文法的理解

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  2. C语言文法的理解

    <程序> ->  <外部声明> |  <程序>  <外部声明> <外部声明>  ->   <函数定义>  |  &l ...

  3. 1029-对c语言文法的理解

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  4. 1029c语言文法2理解

    program → external_declaration | program external_declaration <程序>→ <外部声明>|<程序>< ...

  5. 1029C语言文法的理解

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  6. 1029 C语言文法定义与C程序的推导过程

    1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,写出用上述文法产生这段C程序的推导过程. program → exte ...

  7. 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)

    阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...

  8. C语言文法

    C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明   → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...

  9. Java语言的个人理解

    Java语言的个人理解(比价深层次吧) 大四的生活确实十分的奢靡,不锻炼,不读书,几乎就是当一天和尚撞一天钟的生活,太颓废了,还好自己不是这个样子,不过身体确实差了很多,昨天跑了一圈内环(4KM),今 ...

随机推荐

  1. 嵌入式C语言自我修养 13:C语言习题测试

    13.1 总结 前面12节的课程,主要针对 Linux 内核中 GNU C 扩展的一些常用 C 语言语法进行了分析.GNU C 的这些扩展语法,主要用来完善 C 语言标准和编译优化.而通过 C 标准的 ...

  2. R语言学习笔记(二十一五):如何如何提升R语言运算的性能以及速度

    在R中获得快速运行代码的方法 使用向量化运算 R语言的并行计算可以用parallel和foreach包 加快R运行速度还可以使用cmpfun()函数即字节码编译器 再者就是在R中调用C或C++ 同时还 ...

  3. SWT_之Table篇

    package edu.ch4; import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import or ...

  4. 20155213 2016-2017-2 《Java程序设计》第二周学习总结

    20155213 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 关于Unicode和UTF 很抱歉,没能读完娄老师推荐的网址,关于Unicode和UTF的介 ...

  5. 201552-53 《Java程序设计》第三周问题汇总

    201552-53 <Java程序设计>第三周问题汇总 1. 4.2 基本类型打包器理解不是很好,希望老师讲解一下. 2.vim中怎么用"yyp"复制上一行代码 在按E ...

  6. 【转载】Direct3D基础知识

    原文:Direct3D基础知识 重新从头开始学习DX,以前太急于求成了,很多基础知识都没掌握就开始写程序了,结果出了问题很难解决.   1.       D3D体系结构 D3D与GDI处与同一层次,区 ...

  7. SRM 653 CountryGroupHard

    SRM 653 CountryGroupHard 题意: n 个人坐成一排,同一个国家的人坐在一起,记者问了一些人他们的国家有多少人,他们都回答了正确的信息.已知m条信息,每条信息形如第 pi 个位置 ...

  8. HTTP请求方式:GET和POST的比较

    GET和POST是HTTP的两个常用方法 什么是HTTP? 超文本传输协议(HyperText Transfer Prptocol-HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP ...

  9. 9.15 DP合集水表

    9.15 DP合集水表 显然难了一些啊. 凸多边形的三角剖分 瞄了一眼题解. 和蛤蛤的烦恼一样,裸的区间dp. 设f[i][j]表示i~j的点三角剖分最小代价. 显然\(f[i][i+1]=0,f[i ...

  10. mysql 错误代码 1248

    1248 - Every derived table must have its own alias (MYSQL错误) 这句话的意思是说每个派生出来的表都必须有一个自己的别名,给派生表加上一个别名就 ...