#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);