5.2 后缀表达式 + 5.2.1 下标

来源:互联网 发布:阿玛拉王国 身材数据 编辑:程序博客网 时间:2024/05/22 21:59

5.2 后缀表达式

1、后缀表达式从左至右组合。

postfix-expression:

primary-expression

postfix-expression [ expression ]           // 下标

postfix-expression ( expression-listopt )   // 函数调用

simple-type-specifier ( expression-listopt )

typename ::opt nested-name-specifier identifier ( expression-listopt )

typename ::opt nested-name-specifier templateopt template-id ( expression-listopt )

postfix-expression . templateopt id-expression

postfix-expression -> templateopt id-expression

postfix-expression . pseudo-destructor-name

postfix-expression -> pseudo-destructor-name

postfix-expression ++

postfix-expression --

dynamic_cast < type-id > ( expression )

static_cast < type-id > ( expression )

reinterpret_cast < type-id > ( expression )

const_cast < type-id > ( expression )

typeid ( expression )

typeid ( type-id )

 

expression-list:

assignment-expression

expression-list , assignment-expression

 

pseudo-destructor-name:

::opt nested-name-specifieropt type-name :: ˜ type-name

::opt nested-name-specifier template template-id :: ˜ type-name

::opt nested-name-specifieropt ˜ type-name

5.2.1 下标

1、后缀表达式后面跟一个由方括号扩起来的表达式还是后缀表达式。前一个表达式应具有“pointer to T”类型,另一个应为枚举或整数类型。最终的后缀表达式为“T”类型的左值。类型“T”必须是定义完全的对象类型。表达式E1[E2]在定义上等于*((E1)+(E2))[注:有关*+的详细论述可参考5.35.7;有关数组的详细讨论可参考8.3.4]

原创粉丝点击