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

Pointers - C++

Восстановить пароль Регистрация
 
Rashmash
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 75
23.03.2012, 01:49     Pointers #1
Здравствуйте, не могу понять принцип указателей, можете пожалуйста объяснить почему в этом коде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 int main()
{
    int somenumber;
    
    int* pPointer;
    
    somenumber=15;
    
    pPointer=&somenumber; // в этом случае указатель указывает на адресс в памяти так да? он выглядит тут типа 0002F и т.п.
    
 
    std::cout<<somenumber<<std::endl;
 
    *pPointer=25;// тут просто приравниваем указатель 25, но почему меняется somenumber?
    
    std::cout<<somenumber<<std::endl;
меняется переменная somenumber, мы же ни к чему её не приравнивали, а только поменяли значение указателя.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2012, 01:49     Pointers
Посмотрите здесь:

C++ C++: pointers, clases
C++ указатели (Pointers)
Templates and pointers to functions C++
C++ Smart Pointers: что такое и как с этим работать?
Boost C++ boost/shared_ptr (Smart Pointers)
Pointers and dynamic arrays C++
C++ Указатели (pointers) и их практический смысл?
Const, pointers, reference C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6167 / 2896 / 282
Регистрация: 04.12.2011
Сообщений: 7,701
Записей в блоге: 3
23.03.2012, 02:23     Pointers #2
Цитата Сообщение от Rashmash Посмотреть сообщение
*pPointer=25;// тут просто приравниваем указатель 25, но почему меняется somenumber?
*pPointer - здесь Вы не присваиваете указатель, а выполняете его разадресацию и присвоение целому по адресу pPointer то есть той переменной на которую он указывает: somenumber
То есть *pPointer в объявлении int *pPointer (здесь * -часть спечификатор типа в объявлении)
и *pPointer в выражении *pPointer = 25 (здесь * - оператор разадресации)
значат разные вещи, хотя выглядят одинаково.
В свое время один мудрый человек испытывая идеосинкрозию по этому поводу придумал специальный символ -> который планировал использовать и для разадресации и даже для объявлений (что бы они читались и программером и компилятором слева направо). Но его планам не суждено было сбыться. И теперь -> служит для доступа к членам класса через указатель на экземпляр.
Yandex
Объявления
23.03.2012, 02:23     Pointers
Ответ Создать тему
Опции темы

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