Здравствуйте, гость ( Вход | Регистрация )
|
Litkevich Yuriy |
29.6.2011, 7:09
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
как это читать?Это указатель на указатель_на_масив? |
|
|
|
![]() |
|
DIMEDROLL |
29.6.2011, 7:22
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0
|
незнаю, но у меня не компилится такое в 2008 студии
а это компилится, и это указатель на массив
Сообщение отредактировал DIMEDROLL - 29.6.2011, 7:23 |
|
|
|
|
Litkevich Yuriy |
29.6.2011, 7:35
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
на шёл в списке проблем одного из компиляторов, как не поддерживаемая форма объявления. Стало быть по стандарту допустимая.
|
|
|
|
|
Алексей1153 |
29.6.2011, 9:21
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
а menu0, menu1 какой тип имеют ?
если я рассуждаю верно, то: - это тип элемента массива. То есть: два или больше "const" или "*const" подряд - эквивалентны одному. А это константный указатель на константный тип (этот указатель надо инициализировать сразу и менять далее нельзя) в итоге тип массива такой: -массив константных указателей на char |
|
|
|
|
BRE |
29.6.2011, 9:45
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(Litkevich Yuriy @ 29.6.2011, 8:09) Link как это читать?Это указатель на указатель_на_масив? Это массив указателей на указатели char - по другому это двухмерный массив строк. Цитата(DIMEDROLL @ 29.6.2011, 8:22) Link и это указатель на массив Нет, это массив указателей... |
|
|
|
|
ViGOur |
29.6.2011, 9:52
Сообщение
#6
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(Алексей1153 @ 29.6.2011, 10:21) Link -массив константных указателей на char |
|
|
|
|
Iron Bug |
29.6.2011, 12:39
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
ViGOur прав.
Собственно, ничего сложного в объявлениях Си нет. Просто нужно с хвоста разбирать выражение и смотреть типы. |
|
|
|
|
BRE |
29.6.2011, 12:51
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(Iron Bug @ 29.6.2011, 13:39) Link Собственно, ничего сложного в объявлениях Си нет. Просто нужно с хвоста разбирать выражение и смотреть типы. Я бы уточнил... не с конца, а от самого идентификатора, и смотреть в операции слева и справа в зависимости от их приоритета. |
|
|
|
|
Iron Bug |
29.6.2011, 14:01
Сообщение
#9
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
Цитата(BRE @ 29.6.2011, 14:51) Link не с конца, а от самого идентификатора, и смотреть в операции слева и справа в зависимости от их приоритета. я не могу вообразить ни одного примера, чтобы не с конца. "операции" там - функции и массивы(постфиксные) и указатели и ссылки(префиксные). первые имеют приоритет над вторыми. а редкие случаи указателей на функции или массивы разруливаются обычными скобками. в общем, всё равно в итоге выйдет, что с конца |
|
|
|
|
Litkevich Yuriy |
30.6.2011, 5:42
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Так надо бы раз и на всегда с этим покончить.
Есть: 1) 2) 3) 4) "Читаем по слогам" (номера при const - условность): 1) указатель (* listnames1) на константный (const1) char 2) константный указатель (* const2 listnames2) на константный (const1) char 3) массив указателей (* listnames3[]) на константный (const1) char 4) константный массив (const3 listnames4[]) константных указателей (const2 *), на указатель на константный char (const1 char *) Всё верно? Может список пополнить ещё какими-то родственными объявлениями, кто что помнит? |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 2.1.2026, 11:57 |