【问题标题】:C Programming terminologyC 编程术语
【发布时间】:2016-12-01 22:59:59
【问题描述】:

接受这份声明:

int i = 80;

这是我对用于描述每个部分的术语的理解(如果我错了,请纠正我):

  • int是变量类型
  • i 是声明者
  • = 是赋值操作数

用什么术语来描述80

另一个例子:

char *c = "a";
// char - variable type
// c    - declarator
// =    - assignment operand
// "a"  - ?

【问题讨论】:

  • 初始值..
  • = 标志着初始化程序的开始,与赋值类似但不相同(因为除其他外,您可以初始化数组但不能分配数组); 80 是初始化器。在标准中,您会得到 declaration: declaration-specifiers init-declarator-listopt ;init-declarator-list: init-declarator | init-declarator-list , init-declaratorinit-declarator: declarator |声明器= 初始化器。您的80 只是一个特别简单的“初始化程序”。
  • @BLUEPIXY 谢谢,这就是我正在寻找的答案。
  • 另外,你的整行不是statement,而是declaration
  • @rodrigo 谢谢。已编辑。

标签: c variables declaration


【解决方案1】:

关于C语法各部分的正确名称,你应该去C standard阅读语言语法。相关的(不完整的)部分是:

declaration:
    declaration-specifiers init-declarator-list opt ;
    static_assert-declaration

declaration-specifiers:
    storage-class-specifier declaration-specifiers opt
    type-specifier declaration-specifiers opt
    type-qualifier declaration-specifiers opt
    function-specifier declaration-specifiers opt
    alignment-specifier declaration-specifiers opt

init-declarator-list:
    init-declarator
    init-declarator-list , init-declarator

init-declarator:
    declarator
    declarator = initializer

例如:

  • static int x = 80, y = 90; 是一个声明
  • static 是存储类说明符,是声明说明符的一部分。
  • int 是一个类型说明符,它是声明说明符的一部分。
  • xy 是用作声明符的标识符(语法在别处)。
  • = 是将声明器与初始化器分开的标记。在这种情况下,它不是运算符。
  • 8090 是用作初始化程序的表达式。
  • , 是一个标记(不是运算符),它将一个声明符和初始化(init-declarator)与下一个分隔符。
  • ; 是一个标记声明结束的标记。

【讨论】:

  • 为了扩展一点,人们通常使用运算符一词来表示您用来构建表达式的事物。例如,+-*/ 等算术运算符,<==>= 等关系运算符等。在变量声明中,= 不是表达式的一部分,因此它不称为运算符。
猜你喜欢
  • 2011-05-27
  • 2011-02-12
  • 2012-11-07
  • 2020-02-24
  • 2017-08-08
  • 2011-03-16
  • 2012-04-27
  • 2011-05-20
相关资源
最近更新 更多