Какой диапазон может иметь элемент массива int?

#c

#c

Вопрос:

Если я объявлю массив int A [40], то будет создано 40 блоков 4-байтовой (32-разрядная система) памяти, тогда все элементы массива могут находиться в диапазоне от -32000 до 32000

Комментарии:

1. если у вас есть [40], то A[41] не определено и вызовет проблемы, если я правильно понял ваш «вопрос».

2. Судя по вашему вопросу, похоже, вы не до конца понимаете, что означает массив. Возможно, было бы неплохо прочитать об этом подробнее.

3. Что означает «ч/б»? Черно-белый? Лучше или хуже?

4. @KerrekSB: из контекста, вероятно, «bet-ween».

5. @Jongware: Это не имело бы смысла: «от -32000 до 32000» не анализируется…

Ответ №1:

Как вы думаете, почему есть разница между int элементом в массиве и простым int ? Его нет: это тот же тип.

Каждое из 40 целых чисел в вашем массиве A будет иметь тот же диапазон, что и любая другая переменная типа int .

Вам следует добавить #include <limits.h> и использовать макросы INT_MIN и INT_MAX .

Для 32-разрядной системы int диапазон намного больше, чем от -32000 до 32000, это от -2147483648 до 2147483647.

Ответ №2:

Из Википедии:

Диапазон целых значений со знаком, которые могут храниться в 32 битах, составляет от -2147483648 до 2147483647 (без знака: от 0 до 4 294 967 295).

Ответ №3:

Учитывая:

 int A[40];
  

Каждый из 40 элементов массива должен иметь диапазон от по крайней мере от -32 767 до 32767. Это минимальный диапазон на int согласно спецификации C.

Поскольку int ваша машина 32-разрядная, ожидается, что диапазон будет от -2 147 483 648 до -2 147 483 647.

32-разрядный int является обычным. Чтобы определить диапазон для заданных платформ

 #include <limits.h>
printf("Min %dn", INT_MIN);
printf("Max %dn", INT_MAX);