Interview Questions

I dont understand why I cant use const values in initializers and array dimensions

C Interview Questions and Answers


(Continued from previous question...)

I dont understand why I cant use const values in initializers and array dimensions

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).

(Continued on next question...)

Other Interview Questions