- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
#include <stdio.h>
const int (&getArray())[10] {
static int tmp[10] = {1,2,3,4,5,6,7,8,9,10};
return tmp;
}
void foo(const int (&refArr)[10])
{
size_t size = sizeof(refArr); // returns 10*sizeof(int)
printf ("Array size: %d\r\n", size);
}
int main() {
foo(getArray());
printf ("%d", getArray()[0]);
for (size_t i=1; i<sizeof(getArray())/sizeof(getArray()[0]); ++i)
printf (",%d", getArray()[i]);
return 0;
}
Оператор индексного доступа или оператор каста объекта в массив на порядок полезнее. Забавен ещё оператор каста объекта в функцию (не оператор скобочки, а именно преобразования объекта в функцию).
Это к вопросу зачем зарывать массив в функцию
Поподробнее можно? Видимо, для исправления порядка инициализации статических данных?
Вообще про явление читай в с++ faq.
А если нажать "перевести", то ваще умора, 1С отдыхает!
(типа это я отписался тут)
Всё зависит от количества говна в голове человека, от его синдрома кулхацкера.