博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言语法
阅读量:7071 次
发布时间:2019-06-28

本文共 2990 字,大约阅读时间需要 9 分钟。

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

外部声明-<函数定义>|<定义>
函数定义-<类型标识符> <声明部分语句>
<标识符类型> -<无类型>|<字符>|<整型>|<浮点型>
<声明>-<指针直接声明> | <直接声明>
<指针>-'*'|<*指针>
<直接声明> → <标识符> | <直接声明[ ]> | <直接声明[常量表达式]> | <标识符(参数列表)> | <标识符()> | <直接声明 , 标识符列表>
<标识符列表>:<标识符> | <标识符列表 ,标识符>
<常数表达式> → <条件表达式>
<参数列表> → <参数声明> | <参数列表 ,参数声明>
<参数声明> → <说明符声明><标识符>
<复合语句> →<{}>|<{语句列表}>|<{ <声明列表> <语句列表> }>
<声明列表> → <声明> | <声明列表> <声明>
<声明> → <初始化声明> | <初始化声明列表 ,初始化声明>
<初始化声明> → <声明> | <声明=初始化程序>
<初始化程序> → <表达式> | <{初始化程序列表}> | <{初始化程序列表,}>
<初始化程序列表> → <初始化程序> | <初始化程序列表 , 初始化程序>
<语句列表> → <语句> | <语句列表> <语句>
<语句> | <复合语句> | <表达式语句> | <选择语句> | <循环语句> |<跳转语句>
<表达式语句> → <表达式;>
<选择语句> : < IF(表达式)语句> | < IF(表达式)语句 > < ELSE 语句>
<循环语句> → < WHILE(表达式)语句> | < FOR(表达式语句表达式语句)语句> | < FOR(表达式语句表达式语句表达式)语句>
<跳转语句> | <continue;> |<breack;> | <return;> | <return 表达式; >
<赋值表达式> → <条件表达式> | <一元表达式> <赋值操作符> <赋值表达式>
<条件表达式> → <逻辑‘或’表达式> | <逻辑‘或’表达式?> <表达式:> <条件表达式>
<逻辑‘或’表达式> → <逻辑‘与’表达式> | <逻辑‘或’表达式> <‘或’运算> <逻辑‘与’表达式>
<逻辑‘与’表达式> → <逻辑‘或’表达式> | <逻辑‘与’表达式> <‘与’运算> <逻辑‘或’表达式>
<或运算表达式> → <异或表达式> | <或运算表达式‘|’ 异或表达式>
<异或表达式> : <与表达式> | <异或表达式 ^ 与表达式>
<与表达式> : <相等表达式> | <与表达式 & 相等表达式>
<相等表达式> : <关系表达式> | <相等表达式> <等于运算> <关系表达式> | <相等表达式> <不等于运算> <关系表达式>

 

<关系表达式> : <替换表达式> | <关系表达式 < 替换表达式> | <关系表达式 > 替换表达式> | <关系表达式<=替换表达式> | <关系表达式>=替换表达式>

<替换表达式> : <加法表达式> | <替换表达式> <左运算> <加法表达式> | <替换表达式> <右运算> <加法表达式>

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

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

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

<一元表达式> : <后缀表达式> | <加一运算> <一元表达式> | <减一运算> <一元表达式> | <一元运算符> <强制转换表达式> | <结构体变量> <一元表达式> | <结构体变量(类型名称)>

<后缀表达式> → : <基本表达式> | <后缀表达式 [ 表达式 ]> | <后缀表达式()> | <后缀表达式(参数表达式列表)> | <后缀表达式 . 标识符> | <后缀表达式> <指针运算> <标识符> | <后缀表达式> <加一运算> | <后缀表达式> <减一运算>

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

<参数表达式列表> : <参数表达式> | <参数表达式列表 , 参数表达式>

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

< 赋值运算符> → <=> | <乘法赋值> | <除法赋值> | <求余赋值> | <加法赋值> | <减法赋值> | <左赋值> | <右赋值> | <与赋值> | <异或赋值> | <或赋值>

<储存类说明符> → <typedef(定义类型)> | <extern(外部变量)> | <static(静态)> | <auto(自动)> | <register(寄存器)>

<结构体或共用体说明符> : <结构体或共用体> <标识符> <{结构体声明列表}> | <结构体或共用体 { 结构体声明列表 }> | <结构体或共用体> <标识符>

<结构体或共用体> : <结构体> | <共同体>

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

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

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

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

<结构说明符> → : <说明符> | <:常数表达式> | <说明符 : 常数表达式>

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

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

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

<类型限定符> → <常量> | <变量>

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

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

<参数列表> → : <参数说明> | <参数列表 , 参数说明>

<类型名称> → <说明符限定符列表> | <说明符限定符列表> <抽象说明符>

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

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

<标记语句> → <标识符 : 语句> | <case> <常数表达式 : 语句> | <default> <语句>

转载于:https://www.cnblogs.com/swxvico/p/6009617.html

你可能感兴趣的文章
bzoj 1194
查看>>
69期-Java SE-001_Java概述-001-002
查看>>
Berkeley DB Java Edition使用说明
查看>>
day2
查看>>
Linux Shell远程执行命令
查看>>
mixin模式特点
查看>>
javaweb新手学习之Tomcat
查看>>
关于管局对个人网站备案的要求
查看>>
CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写...
查看>>
Java编程 -- 命名规范
查看>>
性能测试总结(一)---基础理论篇(转载)
查看>>
一个人不成熟的几个表现
查看>>
(转)什么是“黑客” by 王珢
查看>>
Python——eventlet.backdoor
查看>>
关于PTA平台上使用python2/3书写代码误判问题
查看>>
php中使用curl发送请求和图片压缩
查看>>
sharepoint webpart 普通用户无法访问
查看>>
3月4日作业点评
查看>>
【转】The Top 10 Javascript MVC Frameworks Reviewed 12种JavaScript MVC框架之比较
查看>>
c++ new delete 常踩的坑
查看>>