Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чем отличается массив от указателя? Не понимаю 
:(
    Опции темы
mes
Дата 12.6.2009, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ДокторТуамОсес @  11.6.2009,  14:26 Найти цитируемый пост)
Чем отличается массив от указателя?

На этом форуме данный вопрос поднимался не раз, да поможет Вам поиск .

Цитата(ДокторТуамОсес @  11.6.2009,  17:12 Найти цитируемый пост)
 Повторять не буду 

 smile 


--------------------
PM MAIL WWW   Вверх
ДокторТуамОсес
Дата 12.6.2009, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

Репутация: -5
Всего: -12



Лучшая цензура - это личный пример
--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
lv151
Дата 12.6.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



char    s2[] = "string1"  
это массив, имеющий такой объем, что в нем как раз помещается указанная последовательность символов и '\0'. Отдельные символы внутри массива могут изменяться, но s2 всегда указывает на одно и то же место памяти. 

char *s1   = "string1" ; 
указатель, инициализированный так, чтобы указывать на строковую константу. А значение указателя можно изменить, и тогда последний будет указывать на что-либо другое. Кроме того, результат будет неопределен, если вы попытаетесь изменить содержимое константы.

Керниган, Ритчи, Язык программирования С.

Это сообщение отредактировал(а) lv151 - 12.6.2009, 21:53
PM MAIL   Вверх
ДокторТуамОсес
Дата 15.6.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

Репутация: -5
Всего: -12



Короче говоря в моём примере
массив - это константный указатель на переменную,
а указатель - переменный указатель на константу?
--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
mes
Дата 15.6.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(ДокторТуамОсес @  15.6.2009,  19:04 Найти цитируемый пост)
Короче говоря в моём примере
массив - это константный указатель на переменную,
а указатель - переменный указатель на константу?

нет.



--------------------
PM MAIL WWW   Вверх
ДокторТуамОсес
Дата 15.6.2009, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

Репутация: -5
Всего: -12



Т.е.? smile 
--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
tstr
Дата 28.6.2009, 09:54 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 3.5.2009

Репутация: нет
Всего: нет



Массив представляет собой особый вид использования указателей.
Имя массива является адресом первого элемента массива.
Если array - массив, то приведенное ниже выражение истинно:

Код

    array == &array[0];


Оба имени представляют адрес первого элемента массива.
Оба имени являются константами, поскольку остаются неизменными
в течение всего времени выполнения программы.
В то же время можно присвоить их в виде значений переменной
типа указатель, и вы можете менять значение переменной.
PM   Вверх
zim22
Дата 28.6.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(tstr @  28.6.2009,  09:54 Найти цитируемый пост)
Массив представляет собой особый вид использования указателей.

Массив - это непрерывная область памяти, содержащая объекты заданного типа.
Указатель - это переменная, хранящая адрес объекта определенного типа.
К элементам С-массивов можно обращаться через указатель. 

Цитата(tstr @  28.6.2009,  09:54 Найти цитируемый пост)
Имя массива является адресом первого элемента массива.

При передачи массива в функцию его имя преобразовывается к указателю на его первый элемент.

Цитата(tstr @  28.6.2009,  09:54 Найти цитируемый пост)
Оба имени являются константами, поскольку остаются неизменными

 smile 
Код

int array[] = {1, 2, 3};
*(&array[0]) = 10;




--------------------
PM MAIL   Вверх
Rififi
Дата 28.6.2009, 12:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



Массив представляет собой особый вид использования указателей.
Имя массива является адресом первого элемента массива.
Если array - массив, то приведенное ниже выражение истинно:
Оба имени представляют адрес первого элемента массива.
Оба имени являются константами, поскольку остаются неизменными в течение всего времени выполнения программы.
В то же время можно присвоить их в виде значений переменной типа указатель, и вы можете менять значение переменной. 

почти всё вышеперечисленное - Б.С.К.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.