...
The const keyword is not included in these declarationsthis declaration.
| Code Block | ||
|---|---|---|
| ||
char* c1c = "Hello"; // Bad: assigned to non-const char c2[] = "Hello"; // Bad: assigned to non-const char c3[6] = "Hello"; // Bad: assigned to non-const c1[c[3] = 'a'; // Undefined (but compiles) |
...
| Code Block | ||
|---|---|---|
| ||
char* const c1c = "Hello"; // Good //c[3] = 'a'; would cause a compile error |
Aside
Note that the following code is acceptable, as a and b do not actually point to string literals. They are char array objects which have had characters copied into them, and therefore are modifiable.
| Code Block |
|---|
char const c2a[] = "Helloabc"; // Good char const c3b[63] = "Helloabc"; // Good //c1[3 |
The above code is equivalent to:
| Code Block |
|---|
char a[] = {'a', 'b', 'c', '\0'}; char wouldb[] cause= {'a compile error', 'b', 'c'}; |
Non-Compliant Coding Example 2.a
...