Re[2]: Кое-что туточнить у знатоков.
От: trophim Россия  
Дата: 12.08.11 08:13
Оценка:
Это все конечно хорошо. И изучить стоит лишь потому, что ну вот такие уж конструкции в языке существуют...
Но намеренно самому такое написать. Да это ж взрыв мозга. Более вырвиглазные конструкции можно придумать разве что на перле или брэйнфаке.

P.S. На код-ревью нужно подавать 220В к сидушке тому кто такое написал.
Let it be! — Давайте есть пчелу!
Re[3]: Кое-что туточнить у знатоков.
От: LaptevVV Россия  
Дата: 12.08.11 08:18
Оценка:
Здравствуйте, trophim, Вы писали:

T>Это все конечно хорошо. И изучить стоит лишь потому, что ну вот такие уж конструкции в языке существуют...

T>Но намеренно самому такое написать. Да это ж взрыв мозга. Более вырвиглазные конструкции можно придумать разве что на перле или брэйнфаке.

T>P.S. На код-ревью нужно подавать 220В к сидушке тому кто такое написал.

Сам я никогда записью
type (*p)[size]

не пользовался. Поэтому и не возникало вопросов.
А последние несколько лет вообще пользуюсь исключительно контейнерами STL, поэтому практически и забыл, чего не знал...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Кое-что туточнить у знатоков.
От: B0FEE664  
Дата: 12.08.11 09:42
Оценка: +1
Здравствуйте, vitabrevis, Вы писали:

BFE>>Лично мне не нравится то, что имя указателя при декларации находится внутри описания типа.

V>а typedef не поможет?

Да, поможет спрятать проблему в сам typedef, но ведь иногда и typedef'ы приходится читать:

typedef boost::units::quantity<boost::units::si::scaled::millisecond_unit, int>(*Func)(ValidCameraIndexEnum eSide, int nImageWidthInPixels, int nImageHeightInPixels, boost::units::quantity<boost::units::si::frequency, float> fImagesPerSecond, bool bInterlaced, BitsPerColorComponentEnum eBitsPerColor, ColorConversionEnumEx eColorEncodingMethod);


или вот другое следствие:

S v(S());
Автор: nen777w
Дата: 07.03.10
И каждый день — без права на ошибку...
Re[3]: Кое-что туточнить у знатоков.
От: rg45 СССР  
Дата: 12.08.11 21:09
Оценка: 1 (1)
Здравствуйте, igna, Вы писали:

I>
R>>Pointer(s) to Array of 10 unsigned char
I>


I>Наверное (s) после Pointer здесь все-таки лишнее. Имеется ввиду видимо следующее:


I>
I>Pointer to object(s) of type Array of 10 unsigned char
I>


(s) я добавил, когда нужно было составить 'Array of Pointer(s)'. Лучше ничего не придумалось. Можно, конечно, добавить отдельную специализацию для массива указателей, но из-за такой мелочи вносить избыточность и портить красоту натюрморта как-то не хотелось.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[3]: Кое-что туточнить у знатоков.
От: rg45 СССР  
Дата: 13.08.11 05:13
Оценка: +3
Здравствуйте, trophim, Вы писали:

T>Это все конечно хорошо. И изучить стоит лишь потому, что ну вот такие уж конструкции в языке существуют...

T>Но намеренно самому такое написать. Да это ж взрыв мозга. Более вырвиглазные конструкции можно придумать разве что на перле или брэйнфаке.

T>P.S. На код-ревью нужно подавать 220В к сидушке тому кто такое написал.


Без этих трудностей, которые мы (люди) сами себе создаем, а потом совершенствуем свое мастерство, преодолевая их, жизнь была бы скучна и бесцветна. И моего чудного упражнения не было бы.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: Кое-что туточнить у знатоков.
От: trophim Россия  
Дата: 13.08.11 09:15
Оценка: :)
Долой немерле!
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Let it be! — Давайте есть пчелу!
Re: Кое-что туточнить у знатоков.
От: jyuyjiyuijyu  
Дата: 14.08.11 16:13
Оценка:
Здравствуйте, LaptevVV, Вы писали:

*LVV>const int N = 10;
LVV>int M = 5;
LVV>unsigned char (*p)[N] = new unsigned char[M][N];
LVV>


Тип p — указатель на массив размерностью N, состоящий из беззнаковых char, если ты об этом.


LVV>Далее: тип выражения при разыменовании *p будет массив из 5 элементов. Или как-то иначе?

Да.

всегда же было если int (*p)[2] то *p == указатель на первый элемент массива
тоесть если имеем указатель на массив то после разыменования имеем указатель на первый элемент
ну вот пример
int (*p)[2];
*(*(p + i) + j)
вот тут видно как указатель на массив превращается в указатель на первый элемент
а потом уж после второго разымнования в элемент
с чего вы взяли что typeof(*p) == массив а не указатель ?
Re[2]: Кое-что туточнить у знатоков.
От: rg45 СССР  
Дата: 15.08.11 08:32
Оценка:
Здравствуйте, jyuyjiyuijyu, Вы писали:

J>*LVV>const int N = 10;

LVV>>int M = 5;
LVV>>unsigned char (*p)[N] = new unsigned char[M][N];
LVV>>

J>Тип p — указатель на массив размерностью N, состоящий из беззнаковых char, если ты об этом.


LVV>>Далее: тип выражения при разыменовании *p будет массив из 5 элементов. Или как-то иначе?

J>Да.

Только массив не из 5-ти элементов, а из 10-ти
--
Не можешь достичь желаемого — пожелай достигнутого.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.