1014 C语言文法定义
<程序>→<外部声明>|<程序><外部声明>
<外部声明>→<函数定义>|<声明>
<函数定义>→<数据类型><声明符><复合语句>
<数据类型>→void|char|int|float
<声明符>→<指针><直接声明符>|<直接声明符>
<指针>→'*'|'*'<指针>
<直接声明符>→<标识符>|<直接声明符>'['']'|<直接声明符>'['<普通表达式>']'|<标识符>'('<参数列表>')'>|<标识符>'('')'|<直接声明符>','<标识符列表>
<标识符列表>→<标识符>|<标识符列表>','<标识符>
<一般表达式>→<条件表达式>
<参数列表>→<参数声明>|<参数列表>','<参数声明>
<参数声明>→<声明类型><标识符>
<复合语句>→'{''}'|'{'<语句列表>'}'|'{'<声明列表><语句列表>'}'
<声明列表>→<声明>|<声明列表><声明>
<声明>→<初始化声明符>|<初始化声明符列表>','<初始化声明符>
<初始化声明符>→<声明符>|<声明符>'='<初始化>
<初始化>→<赋值表达式>|'{'<初始化列表>'}'|'{'<初始化列表>',''}'
<初始化列表>→<初始化>|<初始化列表>','<初始化>
<语句列表>→<语句>|<语句列表><语句>
<语句>→<复合语句>|<表达式语句>|<选择语句>|<循环语句>|<跳转语句>
<表达式语句>→';'|<表达式>';'
<选择语句>→if'('<表达式>')'<语句>|if'('<表达式>')'<语句>else<语句>
<循环语句>→while'('<表达式>')'<语句>|for'('<表达式语句><表达式语句>')'<语句>|for'('<表达式语句><表达式语句><表达式>')'<语句>
<跳转语句>→continue';'|break';'|return';'|return<表达式>';'
<表达式>→<赋值表达式>|<表达式>','<赋值表达式>
<赋值表达式>→<条件表达式>|<一元表达式><赋值运算符><赋值表达式>
<条件表达式>→<逻辑或表达式>|<逻辑或表达式>'?'<表达式>':'<条件表达式>
<逻辑或表达式>→<逻辑与表达式>|<逻辑或表达式><或运算><逻辑与表达式>
<逻辑与表达式>→<或表达式>|<逻辑与表达式><与运算><或表达式>
<或表达式>→<异或表达式>|<或表达式>'|'<异或表达式>
<异或表达式>→<与表达式>|<异或表达式>'^'<与表达式>
<与表达式>→<等式>|<与表达式>'&'<等式>
1014 C语言文法定义的更多相关文章
- 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)
阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...
- 1014 C语言文法定义与C程序的推导过程
<程序> -> <外部声明> | <程序> <外部声明> <外部声明> -> <函数定义> | <声明> ...
- 1106 1014 C语言文法定义与C程序的推导过程 冒泡程序语法树
- 1029 C语言文法定义与C程序的推导过程
1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,写出用上述文法产生这段C程序的推导过程. program → exte ...
- 1014 我的C语言文法定义与C程序推导过程
程序> -> <外部声明> | <程序> <外部声明> <外部声明> -> <函数定义> | <声明> < ...
- 1014 C语言文法
<程序> -> <外部声明> | <程序> <外部声明> <外部声明> -> <函数定义> | <声明> ...
- C语言文法定义及C程序的推导过程
program à external_declaration | program external_declaration <程序> -> <外部声明> | < ...
- C语言文法定义与C程序的推导过程
program à external_declaration | program external_declaration <程序> -> <外部声明> | < ...
- 1029c语言文法定义与c程序的推导过程
program → external_declaration | program external_declaration <源程序>→ <外部声明> | <源程序> ...
随机推荐
- JavaWeb基础—MySQL入门小结
一.数据库概述 RDBMS:关系型数据库管理系统 == 管理员(manager)+仓库(database) 常见数据库: Oracle(神喻):甲骨文 MySQL: 归于甲骨文旗下(高版本系统已经开 ...
- JavaEE笔记(九)
List.Map.Set的配置 bean package com.spring.bean; import java.util.List; import java.util.Map; import ja ...
- 6-[多线程]-互斥锁、GIL、死锁、递归锁、信号量
1.互斥锁(排他锁) (1)不加锁的情况下 并发控制问题:多个事务并发执行,可能产生操作冲突,出现下面的3种情况 丢失修改错误 不能重复读错误 读脏数据错误 # mutex from threadin ...
- 【BZOJ1048】 [HAOI2007]分割矩阵
[BZOJ1048][HAOI2007]分割矩阵 题面 bzoj 洛谷 题解 \(dp[a][b][c][d][num]\)表示将矩形\((a,b,c,d)\)分成\(num\)个的最小方差,然后转移 ...
- vue复习(一)
一.认识Vue 定义:一个构建数据驱动的Web界面的渐进式框架 优点: 1.可以完全通过客户端浏览器渲染页面,服务器端只提供数据 2.方面构建单页面应用程序(SPA) 二.引入Vue <!DOC ...
- 大神教你零基础学PS,30堂课从入门到精通
ps视频教程,ps自学视频教程.ps免费视频教程下载,大神教你零基础学PS教程视频内容较大,分为俩部分: 大神教你零基础学PS--30堂课从入门到精通第一部分:百度网盘,https://pan.bai ...
- Shuffle Bags让你的随机不那么随机
前言 当我最初写游戏时,我经常使用标准Random()函数,然后写一堆if和else条件来我获得预期结果.如果结果不太好,我会写更多的条件进行过滤或者筛选,直到我觉得游戏变得有趣.最近我发现有更好的方 ...
- Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第7节: 获取异线程释放的对象
Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第七节: 获取异线程释放的对象 上一小节分析了异线程回收对象, 原理是通过与stack关联的WeakOrder ...
- Linux文件句柄数调整
首先介绍下Linux系统中"一切都是文件". 1. Linux系统文件句柄数概念 文件句柄(Windows) 文件描述符(Unix/Linux):file discriptor,f ...
- ifconfig命令详情
基础命令学习目录首页 原文链接:https://blog.csdn.net/weixin_37886382/article/details/79716879 许多windows非常熟悉ipconfig ...