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

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

Войти
Регистрация
Восстановить пароль
 
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
#1

Подскажите хорошую статью про указатели и ссылки - C++

20.05.2014, 13:09. Просмотров 411. Ответов 9
Метки нет (Все метки)

Посоветуйте статью, видео или книгу по указателям и ссылкам в C++, где все доходчиво разъяснено с реальными примерами. Уже много чего прочитал и посмотрел и понимаю, но вот как доходит до использования в своих программах - путаюсь и теряюсь, предпочитаю вообще не использовать.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 13:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите хорошую статью про указатели и ссылки (C++):

Подскажите, пожалуйста, учебник/статью (или что-то в этом роде) про классы - C++
Подскажите пожалуйста, где можно найти учебник/статью (или что-то в этом роде) про классы? Нужно поскорее их изучить/понять... Заранее...

Пояснить про указатели и ссылки - C++
есть переменное и указатель.. Значение нашей переменной случайный адрес, Как менять адрес указателя, таким образом, что бы она стала...

Расскажите популярно про ссылки и указатели - C++
Помогите разобраться со ссылками и указателями на различные объекты. Запутался вообще в них полностью. Когда читаю книгу про них, то вроде...

Форумчани, подскажите статью - C++
Здравствуйте, можете подсказать статью (хорошую), в которой подробно будут объяснятся классы в С++. А то толковой статьи найти не могу, в...

Подскажите, пожалуйста, хорошую литературу - C++
Всем привет! Огромная просьба к вам: ищу хорошую литературу по С++ (начинаю работать в Visual Studio). Что особенно интересует: 1....

Подскажите хорошую среду для С++ - C++
Всем добрый вечер. Друзья, я вот на ubuntu пересел, и если на Си пишу в geany, то на C++ хотел бы что то более конкретное, однако...

9
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
20.05.2014, 13:16 #2
http://channel9.msdn.com/Events/Goin...rne-Stroustrup

Добавлено через 3 минуты
Bjarne Stroustrup - The C++ Programming Language - 2013 44 - и т.д. страницы.
1
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,646
Записей в блоге: 3
Завершенные тесты: 1
20.05.2014, 13:17 #3
Цитата Сообщение от randy92 Посмотреть сообщение
и теряюсь
что не понятно?
Цитата Сообщение от randy92 Посмотреть сообщение
или книгу по указателям и ссылкам в C++
в любой книге этому уделяется внимание
0
SatanaXIII
20.05.2014, 13:43
  #4

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
в любой книге этому уделяется внимание
Значит я невнимательно читал некрономикон. Х)

0
Croessmah
20.05.2014, 13:50
  #5

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Значит я невнимательно читал некрономикон. Х)
тогда нужно внимательно прочитать книгу "Различные логические выводы, в зависимости от раздела форума"

0
Denis_Zurin
3 / 3 / 8
Регистрация: 19.05.2014
Сообщений: 84
20.05.2014, 14:45 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Указатель - это адрес переменной или функции, место, где оно находится в памяти компьютера. Ряд структур данных (списки, деревья и т.д.) требуют указатели. Например, в однонаправленном списке нужно хранить данные текущего элемента и адрес следующего элемента:
C
1
2
3
4
5
typedef struct tagList
{
  int x;
  struct tagList *next;
} List;
Объявление TYPE* обозначает указатель на тип TYPE. Такое же обозначение используется и для массивов. Массив в C/C++ является указателем на несколько последовательно идущих элементов. Для массивов дополнительно поддерживается арифметика указателей - если указатель указывает на элемент массива, то с помощью операций ++/--/+=/-= можно переходить к следующим и предыдущим элементам.

Операция &varname возвращает адрес переменной, который можно записать в указатель. Для массивов и функций & не нужно, достаточно просто указать имя (а вот для структур - нужно). Операция *ptr позволяет получить доступ к значению по адресу, который хранится в указателе ptr. Например:
C
1
2
3
4
5
6
int n = 2, m = 3;
int *p;
p = &n;
*p = 200;
p = &m;
*p = 300;
Для указателей на функции используется такой синтаксис:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// указатель на функцию, принимающую (int x, int y) и возвращающую int.
int (*pfunc)(int x, int y);
// функция
int summ(int x, int y)
{
  return x + y;
}
void main()
{
  // установить указатель на функцию
  pfunc = summ;
  // вызываем функцию, хранящуюся в указателе ptr
  printf("%d", pfunc(2, 3));
}
В Си указатели можно использовать, когда нужно передать параметры в функцию не по значению, а по ссылке (аналог var-параметров в Паскале и ref/out в C#). Т.е. функция может изменять их значения. Пример - функция, меняющая значения двух переменных целого типа:
C
1
2
3
4
5
6
void swap(int *x, int *y)
{
  int temp = *x;
  *x = *y;
  *y = temp;
}
Вызывается функция так: swap(&n, &m);
В C++ добавили синтаксический сахар для таких параметров-указателей и назвали это ссылками. С помощью ссылок функцию swap можно записать так:
C
1
2
3
4
5
6
void swap(int &x, int &y)
{
  int temp = x;
  x = y;
  y = temp;
}
И вызывать как обычно: swap(n, m);
Т.е. это передача параметров по ссылке, как var в Паскале. Обычно используется для параметров-объектов.
Если остались еще вопросы - см. учебники (Кернигана и Ритчи по Си, и Страуструпа по C++).
1
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
20.05.2014, 15:06  [ТС] #7
Вот не понятно, например, почему нельзя проще: использовать сразу адрес на переменную, не присваивая его указателю? вместо *ptr = &var1 писать просто &var1 везде, где это требуется?
0
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,471
Записей в блоге: 2
20.05.2014, 16:02 #8
Цитата Сообщение от randy92 Посмотреть сообщение
почему нельзя проще: использовать сразу адрес на переменную, не присваивая его указателю?
Цитата Сообщение от Denis_Zurin Посмотреть сообщение
Указатель - это адрес переменной
Читайте внимательно.
0
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
20.05.2014, 18:50  [ТС] #9
Читайте внимательно.
Это понятно, что указатель - адрес переменной. Но ведь указатель имеет вид *, а адрес - &. Так вот я спрашиваю: почему нельзя везде ставить &? мы же по сути адрес и рассматриваем
0
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,471
Записей в блоге: 2
20.05.2014, 21:29 #10
Цитата Сообщение от randy92 Посмотреть сообщение
почему нельзя везде ставить &?
Везде это где конкретно?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2014, 21:29
Привет! Вот еще темы с ответами:

Подскажите хорошую среду с компилятором - C++
Тему " Бесплатные среды (IDE) .. " читал, спасибо, но я переспрошу. Пользуюсь DEV-C++, и среда хорошая. Но.... Что-то меня...

Подскажите хорошую книгу\самоучитель по С++ или С# - C++
Подскажите хорошую книгу\самоучитель по С++ или С#... (не для самых чайников, чтобы там было что-нибудь из программирования для виндовс или...

подскажите где можно купить хорошую методичку - C++
по си++ в москве... желательно чтоб там были только таблицы и обазначения каманд....ну как минишпаргалка....

Указатели и ссылки - C++
Собственно, не могу до конца осознать как это работает, вот пример из вики(комменты входят в пример) int n = 6; // Объявление...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
20.05.2014, 21:29
Ответ Создать тему
Опции темы

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