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

Адреса и указатели - C++

Восстановить пароль Регистрация
 
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
22.10.2011, 17:19     Адреса и указатели #1
Приветствую!
Не могу понять, как работать с указателями и адресами для переменных. Если можно, как можно проще объясните, коль не сложно. Книгу читал но сути так и не понял.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2011, 17:19     Адреса и указатели
Посмотрите здесь:

C++ строки, указатели и адреса
C++ Почему указатели имеют одинаковые адреса
указатели и адреса. C++
Адреса и указатели на языке С++ C++
C++ Указатели и адреса объектов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Noa
56 / 33 / 4
Регистрация: 08.04.2008
Сообщений: 158
22.10.2011, 17:23     Адреса и указатели #2
Что конкрктно не понятно?
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
22.10.2011, 17:26  [ТС]     Адреса и указатели #3
Да все. Как использовать, использование & и *. Вообще, с самого начала.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
22.10.2011, 17:35     Адреса и указатели #4
int a; а создаётся в стеке
a=5; поместить по этому адресу а 5

int a[10]; создаётся массив а в стеке в виде a[0]-0x0, a[1]-0x4, a[2]-0x8....
а[5]=2; значит в адрес а (0х0 + 5*4 его индекс=0х20) поместить число 2

int *a;
a=5; поместить вместо адреса а (0х0) адрес 0х5

Добавлено через 3 минуты
это тебе надо тока в функциях
void fun(int n)
{
n=23; ошибка так как функция принимает число n допостим 5 а пять не может быть 23
}

void fun(int *n)
{
n=23; всё ок так как в память по адресу n (допустим 0х00230) записали чило 23(но в этом случае функции надо передавать адрес для этого операция & и нужна допустим)
}
int n=3;
fun(n) для второго примера не подходит передача 3
fun(&n)подходит передача 0х23
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
22.10.2011, 17:48  [ТС]     Адреса и указатели #5
Что-то проясняется. Можете прокомментировать, как можно подробнее :
C++
1
2
int MyVar = 7;
int* pMyVar = &MyVar;
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2011, 17:52     Адреса и указатели #6
Цитата Сообщение от Van111 Посмотреть сообщение
void fun(int n)
{
n=23; ошибка так как функция принимает число n допостим 5 а пять не может быть 23
}
какая же это ошибка, локальной переменной присвоили значение 23, все нормально
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
22.10.2011, 17:52     Адреса и указатели #7
Цитата Сообщение от nullbyte.dev Посмотреть сообщение
int MyVar = 7; int* pMyVar = &MyVar;
да без базара
MyVar это адрес в памяти по которому записано число 7, операции с этой переменной будут проводится над числом если не ставить знаки типа * и ?
*pMyVar это адрес в памяти в котором хранится адрес переменной MyVar
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
22.10.2011, 17:53  [ТС]     Адреса и указатели #8
Цитата Сообщение от Thinker Посмотреть сообщение
какая же это ошибка, локальной переменной присвоили значение 23, все нормально
кстати да, я только что проверил.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
22.10.2011, 17:54     Адреса и указатели #9
Цитата Сообщение от Thinker Посмотреть сообщение
какая же это ошибка, локальной переменной присвоили значение 23, все нормально
точно а то я чё то перепутал
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2011, 17:57     Адреса и указатели #10
Цитата Сообщение от Van111 Посмотреть сообщение
точно а то я чё то перепутал
Вы наверное хотели сказать, что изменение этой переменной n в данной функции никак не повлияет на переменную, значение которой передавалось из исходной функции
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
22.10.2011, 17:59     Адреса и указатели #11
nullbyte.dev, если вы в этом хотите совсем суперски разбираться почитайте ассемблер уровнем от новичка до более менее продвинутого прогера (лично я бы знания ассемблера не на какой другой язык не променял) и изучите как на языке ассемблера выглядит с++ операторы.
P.S. поверьте лишним не будет

Добавлено через 27 секунд
Цитата Сообщение от Thinker Посмотреть сообщение
Вы наверное хотели сказать, что изменение этой переменной n в данной функции никак не повлияет на переменную, значение которой передавалось из исходной функции
да точно большое спасибо
Noa
56 / 33 / 4
Регистрация: 08.04.2008
Сообщений: 158
22.10.2011, 18:07     Адреса и указатели #12
nullbyte.dev, я бы вам советовал бы прочитать книгу С. Прата - Язык программирования С++. Лекции и упражнения, издание 5 (в нете ищется на раз-два, если что могу помочь), там очень подробно указатели и ссылки разжеваны.
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
22.10.2011, 18:09  [ТС]     Адреса и указатели #13
Noa, не поверите, именно ее и читаю. Сейчас на странице 111, пошли динамические массивы и я решил все-таки хорошо уяснить для себя указатели и адреса.
Noa
56 / 33 / 4
Регистрация: 08.04.2008
Сообщений: 158
22.10.2011, 18:26     Адреса и указатели #14
А какое у вас издание? Я советую именно 5, ибо там есть дополнительные главы. Тогда я еще не могу понять ваши вопросы, открыл книгу, там перед динамическими массивами очень хорошо описан принцип работы указателей. Вы эти главы точно прочитали?
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
22.10.2011, 18:28  [ТС]     Адреса и указатели #15
Оказалось, у меня 4 издание, пойду скачаю пятое. Читал, видимо невнимательно, перечитаю для закрепления.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2011, 18:35     Адреса и указатели
Еще ссылки по теме:

C++ [Указатели]Использование операции получения адреса операнда
C++ Указатели: определить число отрицательных элементов в массиве и вывести их адреса
C++ Указатели, адреса и значения

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

Или воспользуйтесь поиском по форуму:
Noa
56 / 33 / 4
Регистрация: 08.04.2008
Сообщений: 158
22.10.2011, 18:35     Адреса и указатели #16
Цитата Сообщение от nullbyte.dev Посмотреть сообщение
Оказалось, у меня 4 издание, пойду скачаю пятое. Читал, видимо невнимательно, перечитаю для закрепления.
Да, перечитайте, там очень понятно написано.
Yandex
Объявления
22.10.2011, 18:35     Адреса и указатели
Ответ Создать тему
Опции темы

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