I often see the following function declaration:
some_func(const unsigned char * const buffer)
{
}
Any idea why the const is repeated before th
The first const
says that the data pointed to is constant and may not be changed whereas the second const
says that the pointer itself may not be changed:
char my_char = 'z';
const char* a = &my_char;
char* const b = &my_char;
const char* const c = &my_char;
a = &other_char; //fine
*a = 'c'; //error
b = &other_char; //error
*b = 'c'; //fine
c = &other_char; //error
*c = 'c'; //error