• 3023阅读
  • 1回复

Question11.8:I don't understand why I can't ue const values in intializers and array dientsi [复制链接]

上一主题 下一主题
离线那个谁
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-07-17
— 本帖被 tyrone2497谁 执行加亮操作(2013-07-19) —
Q: I don't understand why I can't use const values in initializers and array dimensions, as in
                        const int n = 5;
                        int a[n];
A: The const qualifier really means ``read-only''; an object so qualified is a run-time object which cannot (normally) be assigned to. The value of
a const-qualified object is therefore not a constant expression in the full sense of the term, and cannot be used for array dimensions, case labels, and the like. (C is unlike C++ in this regard.) When you need a true compile-time constant, use a preprocessor #define (or perhaps an enum).
离线那个谁

只看该作者 沙发  发表于: 2013-07-17
问题:我不明白为什么我不能使用初始化的const值在数组维数中国,像这样:
           const int n = 5;
                    int a[n];
回答:const限定语的意味着“只读”;一个被这样限定的对象是不能在运行过程中被重新赋值的(正常的赋值)。被const限定的对象的值并不是完整意义上的常量,不能用作数组维数,case行标等类似的情况(在这一点上C和C++不同)。当你需要使用一个真正在编译期间的常量的时候,使用预处理命令#define(或者enum)。
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个