![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 36 Всего: 170 |
Ок.
Будем считать, что не то же самое, но.., в принципе.., это как посмотреть -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: нет Всего: 31 |
tol05, Ok. Давай попробую нарисовать.. Может это будет не совсем правильно, но покажет что я имею ввиду:
Так выглядит массив: array[0]->[1][2][3][4][5] а вот так - указатель на массив: pArray*->array[0][1][2][3][4][5] То есть указатель - это адрес какой-то переменной в памяти. Указатель знает адрес этой переменной и ее тип. А массив может приводиться к указателю, в том числе неявно, поэтому с массивом можно работать через указатель, как в приведенном тобой примере. Но в отличие от указателя, массив как тип данных также содержит в себе размерность, зная которую этот массив потом можно уничтожить. Указатель такую информацию в себе не несет, при приведении массива к указателю она теряется. Попробуй добавить к приведенному коду например такой:
Эта строка должна будет дать размер всего массива. Но с pStr такой вариант никак не пройдет. Так что это принципиально разные вещи, хотя в результате приведения граница между ними практически стирается. -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 36 Всего: 170 |
Говорим только о массиве int-ов, ок?
Массив - это (в моем понимании) последовательный и непрерывный набор ячеек памяти, каждая из которых содержит свой int. "Последовательный и непрерывный" - ключевое слово, иначе нельзя было бы с массивом работать через арифметику указателей, верно? Так вот, когда мы объявляем массив А (создаем ссылку на массив), то эта ссылка А указывает на начальный адрес размещения массива. Но поскольку массив - непрерывный блок памяти, то: - ссылка А указывает на начало массива - первый элемент массива тоже указывает на начало массива Т.о. и А и А[0] указывают на одну и ту же ячейку памяти. Указатель на массив и массив - одно и то же, оба они указывают на область памяти, где массив лежит. Вот это я имел в виду. Я немного в другом прокололся P.S. страшными строчками типа
Хотя догадываюсь, что ты на консоль результаты выводишь Это сообщение отредактировал(а) tol05 - 23.10.2007, 18:54 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |