const Keyword

Keyword Index

Makes variable value or pointer parameter unmodifiable.

When const is used with a variable, it uses the following syntax:

const variable-name [ = value];
In this case, the const modifier allows you to assign an initial value to a variable that cannot later be changed by the program. For example,
const my_age = 32;
Any assignments to 'my_age' will result in a compiler error. However, such declaration is quite different than using
#define my_age 32
In the first case, the compiler allocates a memory for 'my_age' and stores the initial value 32 there, but it will not allow any later assignment to this variable. But, in the second case, all occurences of 'my_age' are simply replaced with 32 by the preprocessor, and no memory will be allocated for it.

Warning: a const variable can be indirectly modified by a pointer, as in the following example:
*(int*)&my_age = 35;
When the const modifier is used with a pointer parameter in a function's parameter list, it uses the following syntax:
function-name (const type *var-name)
Then, the function cannot modify the variable that the pointer points to. For example,
int printf (const char *format, ...);
Here the printf function is prevented from modifying the format string.