Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Використання вказівників з модифікатором 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");

}

Скомпілюйте наведений приклад.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.