zoukankan      html  css  js  c++  java
  • C语言文法阅读与理解序

    <指针>→*  | * < 指针>

    <直接声明符>  <标识符> | <直接声明>[]| <直接声明>[常量表达式] | <标识符>(参数表) | <标识符>() | <直接声明>,< 标识符列表>

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

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

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

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

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

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

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

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

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

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

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

    <语句>→<复合语句> |<表达式语句> | <条件语句> | <循环语句> | <跳转语句>  

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

    <条件语句>:if(表达式){语句}     |  if( 表达式 ){语句}  else{语句}

    <循环语句>→ where ( 表达式){语句} | for (<表达式语句>< 表达式语句> ){语句} | for( <表达式语句><  表达式语句 > <表达式>){语句}

    <跳转语句> |  continue ;  | break;  |  return;  | return <表达式> ;

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

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

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

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

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

    <或表达式>→<异或表达式> |<或表达式> ||< 异或表达式>

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

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

    <相等表达式>:<关系表达式> | <相等表达式> = <关系表达式 >| <相等表达式> != <关系表达式>

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

    <转换表达式>:<加法表达式> | <转换表达式><左><加法表达式> |<转换表达式><右><加法表达式>

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

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

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

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

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

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

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

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

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

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

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

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

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

    <结构体声明>:<说明符限定符列表><结构体说明符列表>;<说明符限定符列表>→<类型说明符><说明符限定符列表> | <类型说明符>  |<类型限定符><说明符限定符列表> |<类型限定符>

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

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

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

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

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

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

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

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

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

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

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

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

    <有标号语句>→<标识符>:<语句> | case<常量表达式>:<语句> |  default:<语句>

  • 相关阅读:
    漫谈C语言结构体
    如何理解c和c++的复杂类型声明
    STM32 时钟系统
    STM32 系统架构
    运放参数的详细解释和分析-part1,输入偏置电流和输入失调电流【转】
    ROM、RAM、DRAM、SRAM、FLASH的区别?
    FATFS模块应用笔记
    关于I2C和SPI总线协议【转】
    USB编程概念
    Ubuntu手机识别
  • 原文地址:https://www.cnblogs.com/huang123/p/4921145.html
Copyright © 2011-2022 走看看