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

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

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

<类型说明>→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. 1029-c语言文法的理解

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

  3. C语言文法的理解

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

  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. 20145317彭垚 《Java程序设计》第一次实验实验报告

    20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...

  2. diy-pagination-javascript 分页

    <?php isset($_REQUEST['form_single_page_num']) && !empty($_REQUEST['form_single_page_num' ...

  3. (转)Linux下安装Matlab2014及破解

    原文链接:http://blog.csdn.net/lanbing510/article/details/41698285 文章已搬家至http://lanbing510.info/2014/12/0 ...

  4. spring-3-mvc-hello-world-example

    http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

  5. 【转】Unity 之 移动设备的触控操作

    http://blog.csdn.net/anyuanlzh/article/details/18367941 这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作.    iOS和And ...

  6. 【转】UGUI实现unity摇杆

    http://blog.csdn.net/onafioo/article/details/46403801 http://www.winig.cc/archives/348 好久没有写文章了,最近在做 ...

  7. 【转】 Build a RESTful Web service using Jersey and Apache Tomcat 2009

    Build a RESTful Web service using Jersey and Apache Tomcat Yi Ming Huang with Dong Fei Wu, Qing GuoP ...

  8. 【转】深入浅出 JavaScript 中的 this

    Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这 ...

  9. jboss4.2.3建立oracle JMS应用

    一.基本配置 1 增加oracle驱动文件,ojdbc6.jar,不能使用小于该版本的jdbc驱动,jboss-4.2.3.GA\server\default\lib 2 增加retrotransla ...

  10. Myeclipse配置 项目编码格式

    修改MyEclipse 工作空间的编码 修改之后,在该工作空间下创建的任何项目,编码都是UTF-8,既,该项目下所有文件都是utf-8 格式,工作空间影响项目,项目影响文件 General --> ...