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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
#1

Изменения константного значения - C++

09.04.2012, 16:46. Просмотров 572. Ответов 3
Метки нет (Все метки)

Всем привет, вопрос такой. Пытаюсь разобраться с приведением типов, в частности с изменением const значений через указатель.

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char* argv[]){
   int const size = 10;
   int* sz = const_cast<int*>(&size);
   *sz = 2;
   cout << size << " " << &size << endl;
   cout << *sz << " " << sz << endl;
   return 0;
}
Вывод программы:

10 0xbff34518
2 0xbff34518

Как так? Почему по одному и тому же адресу хранится два разных значения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 16:46     Изменения константного значения
Посмотрите здесь:

warning C4309: =: усечение константного значения - C++
Добрый вечер. Почему-то С++ отказывается выводить на экран русские буквы: вместо них бессмысленный набор символов. Я решил написать...

Инициализация константного члена класса с проверкой значения - C++
Допустим есть класс константным членом class a{ const int i; public: a(int ii):i(ii){}; } Можно ли как-нибудь...

Добрый вечер! Передача в функцию константного значения и обьявление им массива - C++
Вот у меня есть функция с объявленым массивом внутри: f(const int &amp;C) { int mass; } Где тут ошибка ? Ведь размер массива...

Усечение константного значения при присвоении значений объектам структуры - C++
Здравствуйте! Есть вот такой код: #include &lt;iostream&gt; using namespace std; struct date { int day; char month; int...

Изменение константного поля класса - C++
Является ли изменение константы-поля класса UB? - компилятор может закэшировать значение и не ждать, что оно другое. - с другой стороны...

вывод константного стринга..срочно - C++
детский глупый вопрос,почему то все равно туплю: cin&gt;&gt;&quot;W=false&quot;; binary '&gt;&gt;' : no operator found which takes a right-hand operand of...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.04.2012, 16:52     Изменения константного значения #2
это оптимизации компилятора компилятор вместо size воткнул 10 в печати
3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
09.04.2012, 16:59  [ТС]     Изменения константного значения #3
Jupiter, есть способ угомонить компилятор? -)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2012, 17:07     Изменения константного значения
Еще ссылки по теме:

Изменения значения переменной типа COORD - C++
Всем доброго времени суток! Недавно я, найдя хороший способ перемещения курсора в консоли, столкнулся с проблемой. Сам код выглядит...

Изменение константного объекта с применением const_cast - C++
1. Это код из учебника С. Прата &quot;Лекции и упражнения&quot;. #include &lt;iostream&gt; using namespace std; void change(const int* pt,...

Увеличить предел константного целочисленного литерала - C++
Добрый день. Появилась потребность увеличить предел целочисленного строкового литерала. Т.е. фактически изменить его тип. Например...

Ошибка при обращении к методу константного объекта - C++
Есть некий класс, в нем есть метод const size_t Length(); пишу оператор сложения Class&amp; operator + (const Class&amp; Val) { if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.04.2012, 17:07     Изменения константного значения #4
3BEPb_TyTa, объяви константу так:
C++
1
int const volatile size = 10;
Yandex
Объявления
09.04.2012, 17:07     Изменения константного значения
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru