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

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

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

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

09.04.2012, 16:46. Просмотров 547. Ответов 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     Изменения константного значения
Посмотрите здесь:

C++ Одновременная реализация константного и неконстантного оператора [] в классе string
C++ вывод константного стринга..срочно
C++ warning C4309: =: усечение константного значения
C++ Инициализация константного статического объекта - члена класса
Изменения значения переменной типа COORD C++
C++ Увеличить предел константного целочисленного литерала
C++ Ошибка при обращении к методу константного объекта
C++ Добрый вечер! Передача в функцию константного значения и обьявление им массива
Инициализация константного члена класса с проверкой значения C++
C++ Усечение константного значения при присвоении значений объектам структуры
C++ Изменение константного поля класса
C++ Повторный возврат рандомного значения ,без изменения значения

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.04.2012, 16:52     Изменения константного значения #2
это оптимизации компилятора компилятор вместо size воткнул 10 в печати
3BEPb_TyTa
 Аватар для 3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
09.04.2012, 16:59  [ТС]     Изменения константного значения #3
Jupiter, есть способ угомонить компилятор? -)
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 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     Изменения константного значения
Ответ Создать тему
Опции темы

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