|
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
|
||||||
Почему при присваивании адреса массива не ставится знак '&' получения адреса22.11.2015, 21:01. Показов 7804. Ответов 88
Метки нет (Все метки)
0
|
||||||
| 22.11.2015, 21:01 | |
|
Ответы с готовыми решениями:
88
Операция получения адреса & и vector 1. Ввести символьный массив. Найти адреса всех парных его элементов. 2. Вывести адреса элементов массива 4 на 4, находящ Почему разные адреса одного и того же элемента динамического массива? |
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 23.11.2015, 13:42 | |
|
Это не упрощение. В русском варианте цитаты Дейтелов грубая ошибка.
Имя массива - не является ни указателем, ни ссылкой, ни чем-либо еще. Это вообще не объект какого бы-то ни было типа, это идентификатор типа NoType и стандарт разрешает это "чудо-юдо" приводить к типу константный указатель. Только благодаря неявному приведению, с ним возможно работать как с константным указателем.
0
|
|
|
Модератор
|
|||
| 23.11.2015, 13:58 | |||
|
Блин, про неявное приведение к указателю чё-то никто не пишет. Вот, ещё, например в "Эффективное программирование на C++":
И далее (стр. 212) там же:
0
|
|||
| 23.11.2015, 14:00 | |
|
0
|
|
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
| 23.11.2015, 14:08 | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 23.11.2015, 14:20 | ||
|
Именно поэтому, учить язык по Стандарту - занятие не благодарное, но и утверждать, что книги врут тоже нельзя, т.к. с обывательской (прикладного программиста) точки зрения имя массива есть указатель на начальный элемент. А вот когда хочется узнать как (почему) это работает уже есть смысл заглянуть в Стандарт.
0
|
||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||||||||||
| 23.11.2015, 15:03 | ||||||||||
|
Посмотрел русский, не ленись посмотреть оригинальный текст в оригинальном учебнике.
Вот я не поленился. Отрыл оригинал Дейтелов (7изд). Красиво там все, красочно так. оригинал текста
Добавлено через 4 минуты А дальше уже пример, что они тесно связаны.
Хотя дальше и говорится...
![]() Добавлено через 11 минут Дейтелы немного подофигели такую ересь писать
1
|
||||||||||
|
Модератор
|
|||||
| 24.11.2015, 06:31 | |||||
|
daslex, я думаю, это общее место в большинстве обучающих книг по С++. Упрощение. Да, они грешат против истины, но так проще объяснить новичку. Они говорят о том, что это указатель, но не упоминают о том, что получается он из неявного преобразования имени массива в указатель на первый элемент. Иначе придётся ещё тут же пояснять, что такое преобразования, чем явные преобразования отличаются от неявных и т.д. А в теме про массивы и указатели новичку и так непросто разобраться.
Добавлено через 10 минут У Страуструпа так:
И далее у него же:
1
|
|||||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 24.11.2015, 08:55 | |
|
Всё, что неявно куда-то приводится является этим куда-то.
Метафорически говоря, типовая метка указателя int* -- базовый тип для типа переменной а, объявленной как int a[5];
0
|
|
| 24.11.2015, 09:00 | |
|
0
|
|
| 24.11.2015, 09:49 | |
|
0
|
|
| 24.11.2015, 09:54 | |
|
Есть ли для программиста разница - является ли имя массива указателем или приводится оно к указателю?
При передаче в качестве параметра это одно и то же. А когда это не одно и то же, есть примеры?
0
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 24.11.2015, 10:06 | |
|
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 24.11.2015, 10:31 | |
|
Croessmah
Так как в любом выражении, где требуется переменная int*, можно использовать переменную int a[], то очевидно, что массив -- это указатель. Хотя указатель -- это не массив, так как можно написать выражение верное для int a[5], но неверное для int*.
0
|
|
|
Неэпический
|
||
| 24.11.2015, 11:08 | ||
|
Ну и там, где требуется размер указателя, получим размер массива. Например, литерал 0 имеет тип int, но может быть неявно преобразован к указателю, но это не делает из этого литерала указательный тип.
0
|
||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 24.11.2015, 17:10 | ||
|
0
|
||
|
Неэпический
|
||||||||
| 24.11.2015, 17:16 | ||||||||
0
|
||||||||
| 24.11.2015, 17:16 | |
|
Помогаю со студенческими работами здесь
40
Почему адреса элементов массива находятся в памяти не по порядку Ошибка получения ip-адреса
Почему при редактировании ip-адреса NetworkManager создаёт второе соединение? Получения адреса объекта вызвавшего события Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|