logo

цонст Поинтер у Ц

Константни показивачи

Константни показивач у Ц не може променити адресу променљиве на коју показује, односно адреса ће остати константна. Према томе, можемо рећи да ако показивач константе показује на неку променљиву, онда не може да указује ни на једну другу променљиву.

Синтакса показивача константе

 *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; } 

У горњем коду:

  • Декларишемо две променљиве, тј. а и б са вредностима 1 и 2, респективно.
  • Проглашавамо константни показивач.
  • Прво, додељујемо адресу променљиве 'а' показивачу 'птр'.
  • Затим, додељујемо адресу променљиве 'б' показивачу 'птр'.
  • На крају, покушавамо да одштампамо вредност променљиве на коју указује 'птр'.

Излаз

цонст Поинтер у Ц

У горњем излазу, можемо приметити да горњи код производи грешку 'додељивање променљиве само за читање 'птр'. То значи да се вредност променљиве 'птр' коју држи 'птр' не може променити. У горњем коду мењамо вредност 'птр' из &а у &б, што није могуће са константним показивачима. Стога можемо рећи да показивач константе, који указује на неку променљиву, не може да указује на другу променљиву.

Показивач на константу

Поинтер на константу је показивач преко кога се не може мењати вредност променљиве на коју показивач показује. Адресе ових показивача се могу мењати, али се не може мењати вредност променљиве на коју показивач показује.

Синтакса показивача на константу

 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; } 

У горњем коду:

величина текста латекса
  • Декларисамо две променљиве, то јест, а и б са вредностима 100 и 200 респективно.
  • Проглашавамо показивач на константу.
  • Прво, додељујемо адресу променљиве 'а' показивачу 'птр'.
  • Затим, додељујемо адресу променљиве 'б' показивачу 'птр'.
  • На крају, покушавамо да одштампамо вредност 'птр'.

Излаз

цонст Поинтер у Ц

Горњи код се успешно покреће и приказује вредност 'птр' у излазу.

  • Сада пишемо код у коме мењамо вредност променљиве на коју показује показивач.
 #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; } 

У горњем коду:

  • Декларишемо две променљиве, тј. 'а' и 'б' са вредностима 100 и 200 респективно.
  • Проглашавамо показивач на константу.
  • Адресу променљиве 'б' додељујемо показивачу 'птр'.
  • Затим покушавамо да изменимо вредност променљиве 'б' кроз показивач 'птр'.
  • На крају, покушавамо да одштампамо вредност променљиве на коју указује показивач 'птр'.

Излаз

цонст Поинтер у Ц

Горњи код показује грешку „додељивање локације само за читање „*птр“. Ова грешка значи да не можемо променити вредност променљиве на коју показује показивач.

Показивач константе на константу

Константни показивач на константу је показивач, који је комбинација горња два показивача. Не може ни да промени адресу променљиве на коју указује, нити може да промени вредност постављену на овој адреси.

како добити емојис за иПхоне на андроиду

Синтакса

 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; } 

У горњем коду:

  • Декларишемо две променљиве, тј. 'а' и 'б' са вредностима 10 и 90, респективно.
  • Константи декларишемо показивач константе, а затим додељујемо адресу 'а'.
  • Покушавамо да променимо вредност променљиве 'а' кроз показивач 'птр'.
  • Затим покушавамо да доделимо адресу променљиве 'б' показивачу 'птр'.
  • На крају, штампамо вредност променљиве, на коју указује показивач 'птр'.

Излаз

цонст Поинтер у Ц

Горњи код показује грешку „додељивање локације само за читање „*птр“ и „додељивање променљиве само за читање „птр“. Дакле, закључујемо да показивач константе на константу не може променити ни адресу ни вредност, на шта овај показивач показује.