Рубрики

Результат sizeof оператора

Прогнозировать вывод программы ниже.

#include <stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))

int array[] = {1, 2, 3, 4, 5, 6, 7};

  

int main()

{

 int i;

  

 for(i = -1; i <= (TOTAL_ELEMENTS-2); i++)

   printf("%d\n", array[i+1]);

  

 getchar();

 return 0;

}

Вывод: ничего не печатается, так как условие цикла неверно для самого первого раза.

Результатом sizeof для операнда массива является количество элементов в массиве, умноженное на размер элемента в байтах. Таким образом, значение выражения TOTAL_ELEMENTS в вышеуказанной программе равно 7.
Тип данных для sizeof result является unsigned int или unsigned long в зависимости от реализации компилятора. Поэтому в условии цикла я
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное в сообщении выше

Рекомендуемые посты:

Результат sizeof оператора

0.00 (0%) 0 votes