Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Использование ключевого слова const - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсортировать во второй массив все фамилии, стоящие в первом массиве после вашей http://www.cyberforum.ru/cpp-beginners/thread107469.html
Заполнить заранее проинициализированный массив строк фамилиями своей группы (не по порядку). Отсортировать во второй массив все фамилии, стоящие в журнале после вашей.
C++ Вывести картинку в консоль Здрасти. Как можно отобразить картинку в консоли? (.bmp .jpeg .tft) http://www.cyberforum.ru/cpp-beginners/thread107461.html
где не правильно и почему? C++
при вводе цифрового значения должно отображаться введенное, а при вводе букв и др. должно появится сообщение о ошибке. но,выводит лишь одну цифру, а при вводе буквы вообще ерунда-выводит строки по...
Компилятор dev c++ 4.9.9.2 не отображает русский текст C++
Я начал учиться програмировать на С++. При при запуске скомпилированых програм вместо русских букв отображаются какието каракули, с английскими буквами всё нормально. Из за чего это может происходить...
C++ Функции и массивы http://www.cyberforum.ru/cpp-beginners/thread107422.html
Надо оформить каждый пункт в виде функции. Все необходимые данные для функции должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. Вот код...
C++ Непойму про компиляторы Компилятор написан на с++ как такое может быть? ведь чтобы скомпилировать такой компилятор нужен был еще кактой компилятор который тоже наверно сделан на с++ а тому еще и.....яйцо или курица? ... подробнее

Показать сообщение отдельно
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.03.2010, 10:04
C++
1
const int a;
Этот случай не входит в правило написания const слева, вопрос о стиле программирования. Тоже самое можно написать, как
C++
1
int const a;
Теперь подробнее:
При использовании const с указателями, действие модификатора может распространяться либо на значение указателя, либо на данные на которые указывает указатель.
Работает (const относится к данным):
C++
1
2
const char * a = "a";
a="b";
Тоже самое и тоже работает:
C++
1
2
char const * a = "a";
a="b";
А вот это уже не работает:
C++
1
2
char * const a = "a";
a="b"; // <-- не работает
Если бы операция присвоения изменяла бы не указатель, а данные:
C++
1
*a = 'Y';
то ситуация была бы диаметрально противоположной...

То есть, когда пишешь const пиши его правее от того, что ты не хочешь изменять:
C++
1
2
3
4
int const a; // не хочу изменять значение, которое хранится в - int
int const * a; // не хочу изменять значение, то есть которое хранится в - int
int * const a; // не хочу изменять адрес, то есть указатель - *
int const * const a; // не хочу изменять ни адрес ни значение.
А вот строка, которую ты привел в примере, на gcc компиляцию не проходит и приводит к ошибке 'duplicate const'
Цитата Сообщение от pontakrin Посмотреть сообщение
const int const a;
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru