logo

const Покажчик у C

Покажчики констант

Постійний покажчик у C не може змінити адресу змінної, на яку він вказує, тобто адреса залишиться постійною. Тому можна сказати, що якщо постійний покажчик вказує на якусь змінну, то він не може вказувати на жодну іншу змінну.

Синтаксис постійного покажчика

 *const ; 

Оголошення постійного покажчика наведено нижче:

 int *const ptr; 

Розберемо постійний вказівник на прикладі.

 #include int main() { int a=1; int b=2; int *const ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; } 

У наведеному вище коді:

  • Ми оголошуємо дві змінні, тобто a і b зі значеннями 1 і 2 відповідно.
  • Ми оголошуємо константний покажчик.
  • Спочатку ми призначаємо адресу змінної 'a' вказівнику 'ptr'.
  • Потім ми призначаємо адресу змінної 'b' покажчику 'ptr'.
  • Нарешті, ми намагаємося надрукувати значення змінної, на яку вказує 'ptr'.

Вихід

const Покажчик у C

У наведеному вище виводі ми можемо помітити, що наведений вище код створює помилку «присвоєння змінної лише для читання «ptr». Це означає, що значення змінної 'ptr', яке зберігає 'ptr', не можна змінити. У наведеному вище коді ми змінюємо значення 'ptr' з &a на &b, що неможливо з постійними покажчиками. Тому можна сказати, що постійний покажчик, який вказує на деяку змінну, не може вказувати на іншу змінну.

Покажчик на константу

Покажчик на константу — це вказівник, через який не можна змінити значення змінної, на яку вказує вказівник. Адресу цих покажчиків можна змінити, але значення змінної, на яку вказує покажчик, змінити неможливо.

Синтаксис покажчика на константу

 const * 

Оголошення вказівника на константу наведено нижче:

 const int* ptr; 

Розберемося на прикладі.

    Спочатку ми пишемо код, у якому змінюємо значення покажчика
 #include int main() { int a=100; int b=200; const int* ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%u',ptr); return 0; } 

У наведеному вище коді:

  • Ми оголошуємо дві змінні, тобто a і b зі значеннями 100 і 200 відповідно.
  • Ми оголошуємо покажчик на константу.
  • Спочатку ми призначаємо адресу змінної 'a' вказівнику 'ptr'.
  • Потім ми призначаємо адресу змінної 'b' покажчику 'ptr'.
  • Нарешті, ми намагаємося надрукувати значення 'ptr'.

Вихід

const Покажчик у C

Наведений вище код виконується успішно, і він показує значення 'ptr' у вихідних даних.

  • Тепер ми пишемо код, у якому змінюємо значення змінної, на яку вказує покажчик.
 #include int main() { int a=100; int b=200; const int* ptr; ptr=&b; *ptr=300; printf('Value of ptr is :%d',*ptr); return 0; } 

У наведеному вище коді:

  • Ми оголошуємо дві змінні, тобто «a» і «b» зі значеннями 100 і 200 відповідно.
  • Ми оголошуємо покажчик на константу.
  • Ми присвоюємо адресу змінної 'b' покажчику 'ptr'.
  • Потім ми намагаємося змінити значення змінної 'b' за допомогою покажчика 'ptr'.
  • Нарешті, ми намагаємося надрукувати значення змінної, на яку вказує вказівник 'ptr'.

Вихід

const Покажчик у C

Наведений вище код показує помилку «призначення розташування лише для читання «*ptr». Ця помилка означає, що ми не можемо змінити значення змінної, на яку вказує покажчик.

Покажчик константи на константу

Покажчик константи на константу - це покажчик, який є комбінацією двох вищевказаних покажчиків. Він не може змінити ні адресу змінної, на яку вказує, ні значення, розміщене за цією адресою.

Синтаксис

 const * const ; 

Оголошення константного покажчика на константу наведено нижче:

 const int* const ptr; 

Розберемося на прикладі.

 #include int main() { int a=10; int b=90; const int* const ptr=&a; *ptr=12; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; } 

У наведеному вище коді:

  • Ми оголошуємо дві змінні, тобто «a» і «b» зі значеннями 10 і 90 відповідно.
  • Ми оголошуємо константний покажчик на константу, а потім призначаємо адресу 'a'.
  • Ми намагаємося змінити значення змінної 'a' через покажчик 'ptr'.
  • Потім ми намагаємося призначити адресу змінної 'b' покажчику 'ptr'.
  • Нарешті, ми друкуємо значення змінної, на яку вказує вказівник 'ptr'.

Вихід

const Покажчик у C

Наведений вище код показує помилку «призначення розташування лише для читання «*ptr» і «призначення змінної лише для читання «ptr». Отже, робимо висновок, що покажчик константи на константу не може змінити ні адресу, ні значення, на яке вказує цей покажчик.