|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2011, 13:51 | #1 |
Пользователь
Регистрация: 13.02.2011
Сообщений: 81
|
указатели
Привет
Я не понимаю различия между transport и transport[0] transport и transport[0] это вроде указатели на motorcycle, а cout выводит разные значения Код:
|
13.02.2011, 14:19 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
имя массива это указатель на его первый элемент.
а array[0] это сам первый элемент. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.02.2011, 14:20 | #3 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
Идентификатор массива т.е. его имя transport - это указатель на первый элемент массива, для того, что бы получить значение указателя, нужно его разыменовать, т.е. написать *transport .
|
13.02.2011, 17:10 | #4 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
cout << transport << endl; g++ вывел [motorcycle, bike, car, plane]
но вроде и совсем не обязан был этого делать, эта строка вроде не по стандарту?можно было ожидать адреса массива на выходе |
13.02.2011, 18:38 | #5 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Да, интересное поведение. А должен был просто адрес вывести.
У меня после компиляции g++ просто адрес выводит.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su Последний раз редактировалось Obey-Kun; 13.02.2011 в 18:50. |
13.02.2011, 19:11 | #6 |
:D
Форумчанин
Регистрация: 26.09.2010
Сообщений: 570
|
ну по идее если массив символов - должен вывести все что в нем хранится вплоть до \0,
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery |
13.02.2011, 19:14 | #7 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
не
во-первых, первый \0 там будет в первом элементе во-вторых, он должен в любом случае адрес вывести
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
13.02.2011, 20:01 | #8 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
вот оно
http://codepad.org/jPEUhnYJ |
13.02.2011, 20:47 | #9 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
а у нас тип массива string* (точнее имя массива имеет этот тип) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
13.02.2011, 21:07 | #10 | ||
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
Цитата:
gcc богат нестандартными расширениями например setbase Цитата:
хотя тот же msvc помню какойто бред выводил |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатели | GrihaI | Общие вопросы C/C++ | 11 | 06.05.2010 18:53 |
указатели в С++ | Aleksa_ks | Помощь студентам | 3 | 27.04.2010 19:31 |
C++ указатели. | tshen | Помощь студентам | 3 | 16.04.2010 22:00 |
Указатели(С++) | Scarletred | Помощь студентам | 0 | 05.04.2010 22:50 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |