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

Почему при присваивании адреса массива не ставится знак '&' получения адреса - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Aqua77
4 / 4 / 1
Регистрация: 13.07.2015
Сообщений: 315
22.11.2015, 21:01     Почему при присваивании адреса массива не ставится знак '&' получения адреса #1
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    int a[2] = { 2, 3 };
    int* b;
    b = a; //Почему при присваивании адреса массива не ставится знак '&' получения адреса.
//А когда присваиваешь адрес отдельной переменной, то необходимо ставить этот знак.
//int a=2;
    int* b;
    b = &a;//
}
И ещё адрес массива из пяти элементов передаст указателю все пять элементов? От адреса первого [0] до адреса последнего [4]. То есть, после такого присвоения указатель будет иметь все 5 адресов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2015, 21:01     Почему при присваивании адреса массива не ставится знак '&' получения адреса
Посмотрите здесь:

C++ Почему указатели имеют одинаковые адреса
Определить адреса и значения элементов массива C++
C++ Почему выводит адреса?
C++ [Указатели]Использование операции получения адреса операнда
C++ Найти адреса элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
27.11.2015, 12:20     Почему при присваивании адреса массива не ставится знак '&' получения адреса #81
Цитата Сообщение от Mr.X Посмотреть сообщение
Мне вот другое интересно, почему даже при наличии типа array студенты массово используют в плюсах сишные массивы? Это же наверно от преподавателей исходит. А им это зачем?
1) Старые учебные материалы
2) Студенты должны учиться и с этим работать тоже
3) Не все преподы еще выползли из 80-ых
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
 Аватар для gru74ik
3116 / 1342 / 167
Регистрация: 20.02.2013
Сообщений: 3,808
Записей в блоге: 17
27.11.2015, 13:10     Почему при присваивании адреса массива не ставится знак '&' получения адреса #82
Croessmah, тут дело даже не в преподах. Вот ходил я к сыну на собрание в школу. Беседовал с учительницей по информатике. Будут учить Pascal. Я говорю "Зачем?" Куда потом с этим Паскалем? Почему не Python, не Ruby, не С++? Учительница говорит "Я Вас понимаю, но что я могу поделать? Нам вот какую программу министерство образования даёт (обязывает преподавать), такую мы и преподаём ученикам. Сказано Pascal, значит будем преподавать Pascal. Даже если мы знаем другие ЯП и можем, умеем и хотим преподавать их. Наши желания никого не интересуют. Есть программа обучения, одобренная министерством. Точка."

Добавлено через 1 минуту
Croessmah, хотя вот в вопросе std::array против сишных массивов, тут да, наверное, всё-таки в преподах дело. Как их учили, так и они учат. Инертность мышления. Привыкли, что учить C++ надо с сишных основ. В чём-то они правы. Хотя последнее время в учебной литературе по С++ наметилась тенденция вводить учащихся в курс дела сразу с классов.
mporro
256 / 102 / 14
Регистрация: 04.07.2014
Сообщений: 571
27.11.2015, 13:28     Почему при присваивании адреса массива не ставится знак '&' получения адреса #83
gru74ik
Да, выразился я резковато.
Тем не менее, чтобы использовать массивы в стиле C нужны ясные причины. Сначала средства С++, если не подошли -- средства С.
gru74ik
Модератор
 Аватар для gru74ik
3116 / 1342 / 167
Регистрация: 20.02.2013
Сообщений: 3,808
Записей в блоге: 17
27.11.2015, 13:38     Почему при присваивании адреса массива не ставится знак '&' получения адреса #84
Цитата Сообщение от mporro Посмотреть сообщение
чтобы использовать массивы в стиле C нужны ясные причины.
Согласен.

Цитата Сообщение от mporro Посмотреть сообщение
Сначала средства С++, если не подошли -- средства С.
Согласен.
mporro
256 / 102 / 14
Регистрация: 04.07.2014
Сообщений: 571
27.11.2015, 13:40     Почему при присваивании адреса массива не ставится знак '&' получения адреса #85
Цитата Сообщение от gru74ik Посмотреть сообщение
тут дело даже не в преподах.
На самом деле всё сложнее и печальнее, чем вам в трёх словах сказали.

Раньше, до ЕГЭ, можно было преподавать любой вообще язык. С появлением ЕГЭ систему пришлось ужесточить: сейчас преподавать можно один из трёх языков: BASIC, Pascal, ANSI C -- именно на этих языках (или псевдокоде, который тоже очень распространён) предлагаются задания в ЕГЭ.

В ближайшее время будет ещё интереснее! Появится ЕГЭ по программированию со сдачей на машинах. Тогда все будут писать в специальной системе КУМИР, где мало фантазии, где код легко проверить. Везде будут учить работать с этой ерундой... Даже Pascal может отлететь. Хотя преподаватели сопротивляются, но система унификации экзаменов и стандартизации сертификации требует.
ct0r
C++/Haskell
 Аватар для ct0r
1549 / 568 / 39
Регистрация: 19.08.2012
Сообщений: 1,174
Завершенные тесты: 1
27.11.2015, 14:18     Почему при присваивании адреса массива не ставится знак '&' получения адреса #86
Цитата Сообщение от Mr.X Посмотреть сообщение
Не знаю что вы в них прекрасного видите. Мне кажется, на них легче плюнуть, чем изучать и использовать.
В lock-free структурах и алгоритмах без них тяжеловато будет
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,662
27.11.2015, 16:07     Почему при присваивании адреса массива не ставится знак '&' получения адреса #87
Цитата Сообщение от gru74ik Посмотреть сообщение
Будут учить Pascal. Я говорю "Зачем?" Куда потом с этим Паскалем? Почему не Python, не Ruby, не С++?
М-да, вы это серьезно насчет С++ в школе в качестве первого языка? Тут вот была тема про указатели, так выяснилось, что их вообще никто толком не знает. С С++ вообще забавная ситуация. Он и раньше был самым сложным языком программирования, но при этом в числе самых популярных, а с введением нового стандарта еще усложнился на порядок, и при этом остается в числе самых популярных. Страуструп точно волшебник!
А в качестве первого языка для изучения программирования и информатики Паскаль мне представляется идеальным. Здесь ему нет конкурентов.
gru74ik
Модератор
 Аватар для gru74ik
3116 / 1342 / 167
Регистрация: 20.02.2013
Сообщений: 3,808
Записей в блоге: 17
27.11.2015, 16:17     Почему при присваивании адреса массива не ставится знак '&' получения адреса #88
Цитата Сообщение от Mr.X Посмотреть сообщение
А в качестве первого языка для изучения программирования и информатики Паскаль мне представляется идеальным. Здесь ему нет конкурентов.
Ну ок. Тут я спорить не стану. Мне просто казалось, что лучше сразу учить язык, который реально применяется в промышленной разработке программ (которым потом можно себе на жизнь зарабатывать). Скажем, тот же Python. Чем он плох в качестве первого языка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2015, 16:32     Почему при присваивании адреса массива не ставится знак '&' получения адреса
Еще ссылки по теме:

Почему адреса одинаковые? C++
C++ Почему в scanf нужно указывать именно адреса переменных?
Операция получения адреса & и vector C++

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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,662
27.11.2015, 16:32     Почему при присваивании адреса массива не ставится знак '&' получения адреса #89
Цитата Сообщение от gru74ik Посмотреть сообщение
Ну ок. Тут я спорить не стану. Мне просто казалось, что лучше сразу учить язык, который реально применяется в промышленной разработке программ (которым потом можно себе на жизнь зарабатывать).
Ну, язык для изучения программирования и язык для работы это, мне кажется, разные вещи, и не стоит их смешивать. А так-то программист должен всю жизнь какие-то языки учить, это как раз для него проблемой быть не должно.
Yandex
Объявления
27.11.2015, 16:32     Почему при присваивании адреса массива не ставится знак '&' получения адреса
Ответ Создать тему
Опции темы

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