|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.06.2011, 19:28 | #1 |
Пользователь
Регистрация: 15.12.2010
Сообщений: 78
|
указатели на массивы и массивы указателей
прочитал много литературы но так толком и не понял.
как обьявить массив указтелей? как обьявить указатель на массив? вот это что я обьявляю: ? int* array[10][10]; И вот если я обьявил просто массив то как мне получить ссылку на этот массив? int A[10][10]; int* B[10][10]; B = &A; так правильно? ответьте пожалуйста а то запутался и не знаю как распутаться |
13.06.2011, 19:39 | #2 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Массив указателей:
Код:
Код:
|
13.06.2011, 19:49 | #3 | ||
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Массив указателей:
Код:
Код:
Цитата:
Цитата:
Вообще, в си имя массива - это, по сути, просто указатель на его начало. Двумерный массив - указатель на одномерный массив других указателей, каждый из которых - указатель на (массив) строку получающегося двумерного массива. Если Вам нужен именно указатель на массив типа int [10][10], то сделайте так: Код:
Форматируйте код, будьте людьми.
|
||
13.06.2011, 19:54 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
blacktener\
прочитал много литературы но так толком и не понял. как обьявить массив указтелей? как обьявить указатель на массив? ... Указатель на массив: Код:
... А теперь - правильный ответ: :D Указатель на массив из 10 элементов типа int int (*arr)[10]; ... Указателем на массив является само имя массива. ... А теперь - правильный ответ: :D имя массива - не является указателем на первый элемент, а неявно приводится к нему компилятором при использовании в арифметических выражениях
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
13.06.2011, 19:55 | #5 | ||
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Цитата:
Цитата:
|
||
13.06.2011, 20:00 | #6 | ||
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Цитата:
Цитата:
Форматируйте код, будьте людьми.
|
||
13.06.2011, 20:02 | #7 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
А, да, теперь понял.
|
13.06.2011, 20:05 | #8 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Granus
Но в принципе сути это не меняет) Да неужели? int arr[10]; int* p; &a + 1; p + 1; как думаешь, что означают эти две строчки? и само выражение &a?
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
13.06.2011, 20:10 | #9 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
&a - адрес переменной a. &a+1 - адрес следующего за переменной a int'a, т.е. скорее всего мусор или еще что-то, если a не элемент массива. p - указатель на int. p+1 - указатель на следующий int после того, на который указывает p.
Разве не так? Написал, скомпилировал, проверил. Вроде бы так.
Форматируйте код, будьте людьми.
Последний раз редактировалось Granus; 13.06.2011 в 20:14. |
13.06.2011, 20:17 | #10 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Granus
&a - адрес переменной a а если бы а было указателем на a[0], то есть на int в данном случае, то почему нельзя так написать? int** pp = &a; (:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дв.массивы и указатели | Марат05 | C++ Builder | 3 | 14.04.2011 19:45 |
Массивы и указатели (С++) | slavy | Помощь студентам | 4 | 26.08.2009 23:33 |
Массивы и указатели (С++) | slavy | Помощь студентам | 3 | 26.08.2009 19:39 |
Указатели и массивы | VladimirVB | Общие вопросы Delphi | 7 | 23.08.2009 19:55 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |