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

Указатели (pointers) и их практический смысл? - C++

Восстановить пароль Регистрация
 
doctormc
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 7
09.06.2014, 11:42     Указатели (pointers) и их практический смысл? #1
Добрый день,

будьте добры, пожалуйста, объясните - вот я сейчас читаю про указатели (*pointers или &pointers). В практике они часто применяются? Я не очень понимаю их практическую полезность и широту употребления.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2014, 11:42     Указатели (pointers) и их практический смысл?
Посмотрите здесь:

C++ C++: pointers, clases
C++ Через указатели на указатели посчитать сумму двух чисел и записать в третье
C++ указатели (Pointers)
C++ Smart Pointers: что такое и как с этим работать?
C++ Pointers
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 11:43     Указатели (pointers) и их практический смысл? #2
постоянно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
09.06.2014, 11:55     Указатели (pointers) и их практический смысл? #3
Цитата Сообщение от doctormc Посмотреть сообщение
В практике они часто применяются?
Ооооочень часто, даже, если Вы этого не видите
Цитата Сообщение от doctormc Посмотреть сообщение
Я не очень понимаю их практическую полезность и широту употребления.
массивы, структуры данных, передача параметров в функции и т.д.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
09.06.2014, 11:58     Указатели (pointers) и их практический смысл? #4
Цитата Сообщение от doctormc Посмотреть сообщение
будьте добры, пожалуйста, объясните - вот я сейчас читаю про указатели (*pointers или &pointers). В практике они часто применяются? Я не очень понимаю их практическую полезность и широту употребления.
массивы, списки, функции, контейнеры, итд итп, всё на них держится.
doctormc
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 7
09.06.2014, 12:01  [ТС]     Указатели (pointers) и их практический смысл? #5
ОК, понял, спасибо всем ответившим
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
09.06.2014, 12:05     Указатели (pointers) и их практический смысл? #6
Сам спотыкался об указатели. Тоже непонятно было нафига они вообще нужны, но со временем всё стало понятно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2014, 12:44     Указатели (pointers) и их практический смысл?
Еще ссылки по теме:

Указатели и указатели на указатели, а также типы данных C++
Pointers and dynamic arrays C++
Const, pointers, reference C++

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

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
09.06.2014, 12:44     Указатели (pointers) и их практический смысл? #7
Цитата Сообщение от Croessmah Посмотреть сообщение
даже, если Вы этого не видите
doctormc, действительно, вы наверняка уже сталкивались с указателями, если уже читаете о них ), просто не замечали.

****************************************************************************
Допустим, мы хотим распечатать массив и оформить это отдельным методом.

Если действуем, казалось бы, без указателей
Вариант 1
C++
1
2
3
void PrintArray(int num[10])
{ //...
}
Однако даже здесь передается не весь массив, а только указатель на первый элемент.

Если сделаем так (передаем массив без размера)
Вариант 2
C++
1
2
3
void PrintArray(int num[])
{//...
}
Данный метод также определяет num как целочисленный указатель.

Ну, и если сделаем так
Вариант 3
C++
1
2
3
void PrintArray(int *num)
{ //...
}
мы непосредственно определили, что передаем указатель.

Но при этом во всех трёх вариантах передаётся указатель на первый элемент, а не весь массив.

*****************************************************************************
P.S. Я подобные методы обычно определяю так:
Для одномерного массива
C++
1
2
3
void PrintArray(int *num, int N)
{ //...
}
где второй параметр - размерность

Для двумерного массива
C++
1
2
3
void PrintArray(int **num, int N, int M)
{ //...
}
Для трёхмерного
C++
1
2
3
void PrintArray(int ***num, int N, int M, int K)
{ //...
}
Для... Ну, вы поняли )
Yandex
Объявления
09.06.2014, 12:44     Указатели (pointers) и их практический смысл?
Ответ Создать тему
Опции темы

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