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

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

Войти
Регистрация
Восстановить пароль
 
nullbyte.dev
0 / 0 / 0
Регистрация: 24.07.2011
Сообщений: 14
#1

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

22.10.2011, 17:19. Просмотров 839. Ответов 15
Метки нет (Все метки)

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

указатели и адреса. - C++
Пользователь вводит с клавиатуры строку – предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран адреса...

Указатели, адреса и значения - C++
У меня 2 вопроса по поводу указателей. Прошу знатоков С++ помочь разобраться 1. Есть код int a = 5; int b = 4; int *c =...

Адреса и указатели на языке С++ - C++
Pomogite pliz((( #include <iostream.h> typedef int* IntPtrType; int main() { IntPtrType ptr_a,ptr_b; int num_c=4, num_d=7; ...

Строки, указатели и адреса - C++
есть код { char *str="Welcome"; cout<<str<<" "<<(void *)str<<" "<<&str<<endl; for (int i=0;i<8;i++) { cout<<str<<" /...

Указатели и адреса объектов - C++
Вот код: #include <conio.h> #include <iostream.h> void main() { clrscr(); int a,b,*pa=&a,*pb=&b,z=pb-pa; ...

Указатели, Оператор взятия адреса - C++
Вообщем, ребят, недавно разбирался с указателями в С++ и столкнулся с проблемой понимания следующих вопросов: void Concat(string *str)...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Noa
57 / 34 / 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,597
Записей в блоге: 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++
4224 / 2198 / 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,597
Записей в блоге: 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,597
Записей в блоге: 12
22.10.2011, 17:54     Адреса и указатели #9
Цитата Сообщение от Thinker Посмотреть сообщение
какая же это ошибка, локальной переменной присвоили значение 23, все нормально
точно а то я чё то перепутал
Thinker
Эксперт C++
4224 / 2198 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2011, 17:57     Адреса и указатели #10
Цитата Сообщение от Van111 Посмотреть сообщение
точно а то я чё то перепутал
Вы наверное хотели сказать, что изменение этой переменной n в данной функции никак не повлияет на переменную, значение которой передавалось из исходной функции
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
22.10.2011, 17:59     Адреса и указатели #11
nullbyte.dev, если вы в этом хотите совсем суперски разбираться почитайте ассемблер уровнем от новичка до более менее продвинутого прогера (лично я бы знания ассемблера не на какой другой язык не променял) и изучите как на языке ассемблера выглядит с++ операторы.
P.S. поверьте лишним не будет

Добавлено через 27 секунд
Цитата Сообщение от Thinker Посмотреть сообщение
Вы наверное хотели сказать, что изменение этой переменной n в данной функции никак не повлияет на переменную, значение которой передавалось из исходной функции
да точно большое спасибо
Noa
57 / 34 / 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
57 / 34 / 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++
Например, если взять указатели на массивы. **m имеет тот же адрес, что и *m, что и m

[Указатели]Использование операции получения адреса операнда - C++
Здравствуйте! Объясните пожалуйста, почему в пером случае, когда присваиваем указателю p_test адрес переменной test, использование...

Указатели: определить число отрицательных элементов в массиве и вывести их адреса - C++
Привет всем, я хотел бы узнать как решается данная задачка: Написать программу, определяющую число отрицательных элементов в массиве и...

Работа с массивами через указатели, адреса. Функция сортировки выбором любого массива - C++
Надо было написать программу сортировки с использованием функций из учебника. соответственно Compare, Find_minimum_index, Swap и SwapChar....


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

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

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