!!!Constant Expression (From MSDN)

来源:互联网 发布:淘宝钓鱼竿专卖 编辑:程序博客网 时间:2024/05/22 10:38

C++ requires constant expressions — expressions that evaluate to a constant — for declarations of:

  • Array bounds

  • Selectors in case statements

  • Bit-field length specification

  • Enumeration initializers

The only operands that are legal in constant expressions are:

  • Literals

  • Enumeration constants

  • Values declared as const that are initialized with constant expressions

  • sizeof expressions

Nonintegral constants must be converted (either explicitly or implicitly) to integral types to be legal in a constant expression. Therefore, the following code is legal:

const double Size = 11.0;char chArray[(int)Size];

From: http://msdn.microsoft.com/en-us/library/3ffb821x.aspx


So we don't need to have constant expression when initialize a const variable:

int i = -1;const int ic = i;        //legal.


原创粉丝点击