![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Використання вказівників з модифікатором const
С++ допускає використання вказівників з модифікатором const. Це дає можливість: а) огoлосити постійним вказівник int* const j = & i; Приклад 5 #include < stdio.h> #include < windows.h> int main() { int i=3; int t=4; int* const j = & i; printf (" i=%d\n", i); // i = 3 *j=2; // змінити значення на яке посилається вказівник printf (" i=%d\n", i); // i = 2 j=& t; printf (" t=%d\n", t); // t = 4 *j=5; // змінити значення на яке посилається вказівник printf (" t=%d\n", t); // t = 5 system(" pause"); } Скомпілюйте наведений приклад. б) оголосити постійним значення, на яке посилається вказівник const int *j = & i; Приклад 6 #include < stdio.h> // Потокове введення-виведення #include < windows.h> int main() { int i=3; const int *j = & i; printf (" i=%d\n", i); // i = 3 *j=2; // змінити значення на яке посилається вказівник printf (" i=%d\n", i); // i = 2 system(" pause"); } Скомпілюйте наведений приклад. або const char *c = " FFFFFFF"; Приклад 7 #include < stdio.h> #include < windows.h> int main() { const char *c = " FFFFFFF"; printf (" c=%s\n", c); // i = 3 *c=2; // змінити значення на яке посилається вказівник printf (" c=%s\n", c); // i = 2 system(" pause"); } Скомпілюйте наведений приклад. в) обидва об'єкти оголосити постійними const int n=5; const int* const j = & n; const char* const c = “FFFFFFF”; Приклад 8 #include < stdio.h> #include < windows.h> int main() { const int n=5; const int* const j = & n; const char* const c = " FFFFFFF"; printf (" c=%s\n", c); // c = “FFFFFFF” *c=" bbbbb"; // змінити значення на яке посилається вказівник int a=7; j=& a; system(" pause"); }
Скомпілюйте наведений приклад. Використання модифікатора const є одним з видів захисту значення вказівника та значеня на яке він посилається. Проте як не дивно, це захист дуже легко обійти, наприклад Приклад 9 #include < windows.h> #include < clocale> #include < iostream> void main() { setlocale (LC_CTYPE, " rus"); const int i = 1; const int* const pi = & i; std:: cout< < " Початкове значення i: " < < i< < std:: endl; *(int*)& i = 2; std:: cout< < " Модифiковане значення i: " < < *pi< < std:: endl; system(" pause"); } Скомпілюйте наведений приклад.
|