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

Поясните по указателям - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамический массив структур http://www.cyberforum.ru/cpp-beginners/thread693096.html
Необходимо создать структуру, и сделать динамический массив структур. Фиксированный массив получается сделать, а вот с динамическим массивом где-то ошибка. Подскажите, пожалуйста, где ошибка. #include <iostream> using namespace std; int mysize=3; struct movies {
C++ Состав проекта С++ Добрый вечер, Уважаемые Программисты! Возник такой вопрос, ответ на который гугл мне не дал, поиск по форумы тоже промолчал. При создание проекта весь код разноситься по разным файлам с расширением .h и .cpp. Так вот вопрос состоит в том, что писать в заголовочные файлы, а что в .cpp. Из курса колледжа помню, что мы разбивали в h - вроде писали классы и их тела. И еще вопрос как они... http://www.cyberforum.ru/cpp-beginners/thread693084.html
C++ Самая популярная бесплатная среда С++
Какая среда C++ самая популярная и самая используемая сейчас и она бесплатная ?
Скетч Arduino -> C++ C++
Здравствуйте! Скажите, пожалуйста, можно ли как то перевести скетч Ардуино в код C++? Заранее спасибо!
C++ Найти количество делителей заданного числа n, заданного в диапазоне 1 <= n <= 10^18 http://www.cyberforum.ru/cpp-beginners/thread693059.html
Нужно узнать количество делителей числа N. Но сложность в том что N большое и перебирать все делите не вариант.
C++ Выделить в одномерном массиве знакочередующийся подмассив Выделить в одномерном массиве знакочередующийся подмассив....помогите плиз! подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,875
Записей в блоге: 2
Завершенные тесты: 1
09.11.2012, 16:33     Поясните по указателям
Цитата Сообщение от denvasden Посмотреть сообщение
Ведь после получения значения адреса каждой из переменных я произвел присваивание адреса одной переменной другой стало быть они теперь ссылаются на одну и ту же область в памяти?
мням, мням... с одной стороны все верно, с другой совсем не верно!

Добавлено через 9 минут
Тут, думаю, всё понятно.
C++
1
2
3
4
5
6
#include <iostream> 
using namespace std; 
int main()
{
    int ival1 = 5;
    int ival2 = 10;
Объявляем 2 указателя
C++
1
2
    int *pointerint1;
    int *pointerint2;
Указателю pointerint1 присваиваем адрес переменной ival1 (пускай это будет 0x00000010)
C++
1
pointerint1 = &ival1;
Указателю pointerint2 присваиваем адрес переменной ival2 (пускай это будет 0x00000014)
C++
1
pointerint2 = &ival2;
Теперь Вы делайете так:
C++
1
pointerint1 = pointerint2;
В данном случае указателю pointerint1 присваивается pointerint2 и становиться таким же (0x00000014)
Соответственно здесь два указателя указывают на одну и ту же область памяти (0x00000014)
C++
1
2
    cout << pointerint1 << "\n";
    cout << pointerint2 << "\n";
По этому адресу у нас находится переменная ival2.

Чтобы сделать равными ival1 и ival2 нужно сделать разыменование указателей во время присваивания:
C++
1
*pointerint1 = *pointerint2;
'*' - оператор разыменования.
Можно данную строчку описать так:
возьми то, что лежит по адресу на который указывает pointerint2(0x00000014)
и положи это по тому адресу, куда указывает pointerint1(0x00000010)
 
Текущее время: 20:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru