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

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

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

<说明符类型>  ->  <空类> | <字符型> |  <浮点型>

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

<指针> -> <*> | <*指针>

<直接说明符>  -> <标识符>  |  <直接说明符  '['  ']'>   |  <直接标识符'[' 恒表达式 ']'>  |  <标识符'(' 参数名单 ')'>  |  <标识符'('  ')'>  |  <直接说明符 ';' 识别名单>

<识别名单> -> <标识符> |  <识别名单 ';' 标识符>

<恒表达式> -> <恒表达式>

<参数名单> -> <参数声明> | <参数名单 ';' 参数声明>

<参数声明> -> <声明标识符> | <标识符>

<复合语句> -> <'{' '}'> | <'{'语句名单'}'> | <'{'识别名单 语句名单'}'>

<识别名单> -> <识别符> | <识别名单  识别符>

<识别符> -> <初始化标识符> | <初始化标识符  ';'  初始化标识符>

<初始化标识符> -> <标识符> | <标识符 '=' 初始化器>

<初始化器> -> <任务表达式>  | <'{' 初始化列表  '}'> | <'{'  初始化列表 '}'>

<初始化列表> -> <初始化器> |<初始化列表 ';' 初始化器>

<语句表> -> <语句> | <语句表  语句>

<语句> -> <复合语句> | <语句表达式> | <选择语句> | <迭代语句> | <跳转语句>

<语句表达式> -> <表达式>

<选择语句> -> < : IF'(' 表达式 ')' 语句> |<IF '(' 表达式 ')' 语句 ELSE 语句>

<迭代语句> -> <WHILE '(' 表达式 ')' 语句> | <FOR'(' 表达语句  表达语句 ')' 语句> | <FOR'(' 表达语句 表达语句 ')' 语句>

<跳转语句> -> <CONTINUE> | <BREAK> | <RETURN> | <RETURN 表达式>

<表达式> -> <:复制表达式> | <表达式 ';' 复制表达式>

<赋值表达式> -> <条件表达式> | <一元赋值 运算符表达式 赋值表达式>

<条件表达式> -> <逻辑或表达式> | <>

C语言文法的理解的更多相关文章

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

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

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

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

  3. 1029c语言文法2理解

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

  4. 1029C语言文法的理解

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

  5. 1029对c语言文法的理解

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

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

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

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

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

  8. C语言文法

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

  9. Java语言的个人理解

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

随机推荐

  1. 学习Uml开始

    Um的全称是 Unified Modeling Language, 统一建模语言,uml可以帮助我们做软件需求和软件设计的工作, 1.1UML的定义 UML是一种通用的可视化建模语言,是一种标准化的用 ...

  2. java Jsoup 抓取页面数据

    List<ImageBean> imgList = new ArrayList<ImageBean>(); ImageBean image = null; String ima ...

  3. php之XML转数组函数的方法

    <?/** * xml2array() will convert the given XML text to an array in the XML structure. * Link: htt ...

  4. flexigrid随手记

    最近要用到flexigrid做表格,随手记一些知识点. 引入了两个jquery库(jquery.js和jquery-1.7.1.min.js),发生冲突,只保留一个 $("#gridTabl ...

  5. python(五)文件操作

    1.打开文件 f = open('db','r')   #只读 f = open('db','w')   #只写,先清空原文件 f = open('db','x')   #文件存在,报错,不存在,创建 ...

  6. 什么是 HTML?

    前言 在 W3C(万维网联盟)官网里,有一套针对于初学者的 HTML 培训教程,为期四周.为了提升自己的翻译水平,同时帮助大家入门,我给大家翻译出来,以供参考. 1. 什么是 HTML HTML 是创 ...

  7. Popwindow

    popwindow的使用方法 View contentView = LayoutInflater.from(mContext).inflate( R.layout.dialog_homelist_vi ...

  8. Linux 休眠,挂起(待机),关机等几个命令的区别及如何实现;如何启用Ubuntu的休眠模式

    这里对linux 的几个命令整理下,有:休眠,挂起,待机,关机等几个命令的区别及如何实现. 休眠是一种更加省电的模式,它将内存中的数据保存于硬盘中,所有设备都停止工作.当再次使用时需按开关机键,机器将 ...

  9. jquery总结03-遍历节点

    这是用的最多的 向下遍历节点 children()   第一级子元素 相当于li>span find()  多级子孙元素 相当于li span 注意:.filter(':contains(&qu ...

  10. Flex 文本控件实现自定义复制粘贴

    由于添加了自定义右键菜单,导致Textinput控件默认的右键复制粘贴功能被屏蔽了.最后通过JS脚本实现这个功能,参考代码如下 <?xml version="1.0" enc ...