Здравствуйте, Аноним, Вы писали:
А>Объявлен статический массив А>static int aaa[] = {1,2,3,4,5,6};
А>Количество элементов это sizeof(aaa)/sizeof(int) или просто sizeof(aaa)?
А>Вылетело из башки, а в справке что-то не могу найти.
первое
Re: Туплю, напомните плиз - как узнать размер int aa[] ?
А>static int aaa[] = {1,2,3,4,5,6}; А>Количество элементов это sizeof(aaa)/sizeof(int) или просто sizeof(aaa)? А>Вылетело из башки, а в справке что-то не могу найти.
Ну сам-то как думаешь? Чему равен sizeof(aaa)? Очевидно, что размеру ВСЕГО массива. А чему равен размер ВСЕГО массива? Понятно, что размеру одного элемента умноженного на количество элементов.
Кстати, привыкай писать
sizeof(aaa)/sizeof(aaa[0])
будет меньше сюрпризов, когда в массиве не целые.
Да здравствует мыло душистое и веревка пушистая.
Re: Туплю, напомните плиз - как узнать размер int aa[] ?
Здравствуйте, Аноним, Вы писали:
А>Объявлен статический массив А>static int aaa[] = {1,2,3,4,5,6};
А>Количество элементов это sizeof(aaa)/sizeof(int) или просто sizeof(aaa)?
А>Вылетело из башки, а в справке что-то не могу найти.
Написали бы тестовый пример и проверили, делов то. Правильный ответ sizeof(aaa)/sizeof(int)
Re: Туплю, напомните плиз - как узнать размер int aa[] ?
Здравствуйте, Аноним, Вы писали:
А>Объявлен статический массив А>static int aaa[] = {1,2,3,4,5,6};
А>Количество элементов это sizeof(aaa)/sizeof(int) или просто sizeof(aaa)?
А>Вылетело из башки, а в справке что-то не могу найти.
Здравствуйте, wander, Вы писали:
W>Здравствуйте, Аноним, Вы писали:
А>>Объявлен статический массив А>>static int aaa[] = {1,2,3,4,5,6};
А>>Количество элементов это sizeof(aaa)/sizeof(int) или просто sizeof(aaa)?
А>>Вылетело из башки, а в справке что-то не могу найти.
W>Еще можно использовать вот такой шаблончик: W>
Это шаблон функции, принимающей ссылку на констанный массив. Шаблон парметризоман типом элемента массива и его размером. Сразу хочется отметить, что фактичскими аргументмами этой функции не могут выступать указатели. Для понимания того, "как это работает", можно начать с рассмотрения такого варианта использования данной функции:
int some_array[42];
std::cout << array_size<int, 42>(some_array);
Но в данном случае явное указание параметров шаблона не является обязательным, поскольку компилятор способен их вывести из аргумента some_array на этапе компиляции. Поэтому приведенный фрагмент эквивалентен следующему:
int some_array[42];
std::cout << array_size(some_array);
Стоит также сказать два слова о строковых литералах. Типом, например, строкового литерала "Hello" является не const char*, как может показаться, а const char[6] (не забываем о завершающем нулевом символе). Ну и поскольку строковые литералы являются массивами, это позволяет использовать функцию array_size и для них.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: Туплю, напомните плиз - как узнать размер int aa[] ?
R>Это шаблон функции, принимающей ссылку на констанный массив. Шаблон парметризоман типом элемента массива и его размером. Сразу хочется отметить, что фактичскими аргументмами этой функции не могут выступать указатели. Для понимания того, "как это работает", можно начать с рассмотрения такого варианта использования данной функции: R>
R>Но в данном случае явное указание параметров шаблона не является обязательным, поскольку компилятор способен их вывести из аргумента some_array на этапе компиляции. Поэтому приведенный фрагмент эквивалентен следующему: R>
R>Стоит также сказать два слова о строковых литералах. Типом, например, строкового литерала "Hello" является не const char*, как может показаться, а const char[6] (не забываем о завершающем нулевом символе). Ну и поскольку строковые литералы являются массивами, это позволяет использовать функцию array_size и для них.
Понятно, игра с тем, что компилятору известен размер массива, ишодя из того, что различает типы int [4] и int [2], например.
Спасибо за внимание
Re[3]: Туплю, напомните плиз - как узнать размер int aa[] ?
Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, wander, Вы писали:
W>>Еще можно использовать вот такой шаблончик: U>ну и добавлю статическую версию: http://codepad.org/l1B6e8ei
... и сделаю унифицированный и понятный макрос _countof(array)