### Question 11.8

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];

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. (C is unlike C++ in this regard.) When you need a true compile-time constant, use a preprocessor `#define`.

References: ANSI Sec. 3.4
ISO Sec. 6.4
H&S Secs. 7.11.2,7.11.3 pp. 226-7

Read sequentially: prev next up top

This page by Steve Summit // Copyright 1995 // mail feedback