2016-10-03 2 views
0

Я довольно новичок в C. Может ли кто-нибудь объяснить мне разницу между следующим? С точки зрения использования и концепции.Разница между константным указателем и указателем на константу в C

int *const p= &x; 

int const *p= &x; 

const int *const p= &x; 

или любые другие варианты использования указателей, которые помогут мне полностью понять концепцию.

ответ

1

Устойчивость применяется к 1) самому указателю - может ли он измениться, чтобы указать на что-то еще после инициализации, и 2) данные, на которые указывает указатель, - могут ли данные изменять или нет с помощью указателя.

int *const p= &x; // p is const pointer to non-const data - p cannot change to point to something else, but you can change what it points to 

int const *p= &x; // p is non-const pointer to const data - p can change to point to something else, but what it points to cannot be changed 

const int *const p= &x; // p is const pointer to const data - p cannot change to point to something else, and what it points to cannot be changed 
Смежные вопросы