|
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 27
|
|
Ссылки и указатели: зачем все это?21.04.2017, 19:09. Показов 17473. Ответов 21
Метки нет (Все метки)
Здравствуйте форумчане. Кому не лень, могли бы мне доступно объяснить, для чего в С++ все так усложнять? Я про указатели, ссылки, взятие по адресу, разыменование, ссылка на ссылку, ссылка на константный указатель, указатель на указатель через указатель по ссылке... и тд.
Я выучил ужасный синтаксис всего этого, и могу использовать, но я не пойму на кой это все надо. Почему просто не обращаться к переменной? Ладно, под ссыль не выделяется память, но под указатель выделяется. Для чего плодить все эти сущности, постоянно выделяя память, по сути одному и тому же значению? Может есть какой нить пример, который докажет мне что без всего этого не обойтись? Или это просто философия языка? Искренне хотелось бы понять... Спасибо.
0
|
|
| 21.04.2017, 19:09 | |
|
Ответы с готовыми решениями:
21
Зачем нужны все эти указатели (или не указатели) сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? |
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 21.04.2017, 19:19 | |
|
0
|
|
|
12 / 12 / 8
Регистрация: 19.02.2017
Сообщений: 44
|
|||||||||||||||||||||
| 21.04.2017, 19:33 | |||||||||||||||||||||
|
Привет!
На самом деле все эти "сложности" сделаны не просто так. Попробуй немного изменить взгляд на вещи. Смотри на это не как на "усложнения", а как на инструменты. Вот маленький пример. Допустим я создал какую-то функцию
Конечно для этого можно было бы функцию, которая возвращает значение ( int function(int a) ) и всё бы работало. Но если этих значений 2? Или 10-ть? Что делать? Функция может вернуть только 1 значение. Тут вступают в бой ссылки, или указатели. Мощный инструмент, который по вашему был усложнением языка. Если я передам в функцию значение по ссылке, то эти значения будут меняться и в функции.
Ладно, допустим ссылки еще ничего. Но зачем эти злые указатели? Представьте такую задачу. Вас просят создать функцию, которая ищет максимальное значение в массиве. Что делать? Если передать указатель на начальный элемент массива в функцию, то, перемещая этот указатель можно "пройтись" по всем элементам массива, и благополучно найти максимальный элемент. Я описал только базовые вещи. Которые на самом то деле в полной мере не отображают мощь и полезность ссылок и указателей.
4
|
|||||||||||||||||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 21.04.2017, 21:12 | ||
|
итак... кафедра. экзамен по философии. всем студентам раздали задание. у всех одно и тоже. все задание из одного единственного вопроса: ПОЧЕМУ? экзамен сдал один единственный студент. его ответ был: ПОЧЕМУ БЫ И НЕТ?
3
|
||
|
"C with Classes"
|
|
| 21.04.2017, 21:22 | |
|
Qazz, Чем острее скальпель, тем точнее вырез, и тем больше шансов порезаться.
0
|
|
| 21.04.2017, 21:24 | |
|
Не по теме: _stanislav, между прочим шанс порезаться меньше. как бы ни казалось.
0
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||||||
| 21.04.2017, 22:12 | ||||||
|
Вы ещё до полиморфизма не дошли. Когда дойдёте, вернитесь в эту тему.
Кроме полиморфизма ещё есть всякие причины, но полиморфизм, полагаю, достаточно красноречив. Ну а пока о злых указателях замолвю словечко:
1
|
||||||
|
"C with Classes"
|
|
| 21.04.2017, 22:19 | |
|
daslex, мне кажется что указатели это самый мощный инструмент С++.
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||||||||||||||||||||||
| 21.04.2017, 23:21 | |||||||||||||||||||||||
|
С++ произошел от чистого Си. И в чистом Си никаких ссылок нет. Есть только указатели. Но создатели С++ хотели сделать поудобнее и попонятнее. Что-то для кого-то получилось, а что-то для кого-то и не очень. Конечно, объяснять студенту, что функция
Стоит это осознать, и жизнь потихонечку начинает налаживаться... ![]() Добавлено через 10 минут
2
|
|||||||||||||||||||||||
|
"C with Classes"
|
|
| 22.04.2017, 06:54 | |
|
0
|
|
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
|
| 22.04.2017, 07:08 | |
|
_stanislav, я думаю, для the студента это не так важно) Для него она просто нерабочая
0
|
|
|
Неэпический
|
|||||||
| 22.04.2017, 09:16 | |||||||
то она вообще ничего не делает. А в силу того, что она ничего не делает, то gcc, скорее всего выпилит все её вызовы, ибо бесполезны. Так что, скорее всего, она и правда ничего не делает.
2
|
|||||||
|
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 27
|
|||
| 23.04.2017, 11:14 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
| 23.04.2017, 11:19 | |
|
1
|
|
|
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 27
|
|
| 23.04.2017, 11:22 [ТС] | |
|
0
|
|
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
|
| 23.04.2017, 11:25 | |
|
0
|
|
|
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 27
|
||
| 23.04.2017, 11:30 [ТС] | ||
|
1
|
||
| 23.04.2017, 11:30 | |
|
Помогаю со студенческими работами здесь
20
Указатели и ссылки. Надо ли обнулять? когда и как это делать?
Зачем нужны rvalue ссылки, если есть универсальные ссылки
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|