|
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
|
||||||
Почему при присваивании адреса массива не ставится знак '&' получения адреса22.11.2015, 21:01. Показов 8094. Ответов 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 | |
|
Почему адреса элементов массива находятся в памяти не по порядку Ошибка получения ip-адреса
Почему при редактировании ip-адреса NetworkManager создаёт второе соединение? Получения адреса объекта вызвавшего события Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|