В последнем уроке я дал вам обзор массивов в C, а также рассказал об объявлении и инициализации массивов. До сих пор мы также закончили тему для вывода значений массива на экран. Сегодня я расскажу вам, как принимать значения внутри массива пользователем. Итак, давайте начнем с какой-нибудь программы.
Выход
объяснение
- В нашей программе я объявил «x» как целочисленный массив из 5 элементов.
- Используя цикл for, я получил от пользователя 5 значений.
- Внимательно рассмотрим нижний индекс, который я использовал внутри функции scanf (), это x [i].
- Почти аналогичный цикл используется для печати значений внутри этого массива.
Чтобы легко понять работу массивов, вы должны знать об этом.
Как элементы массива хранятся в памяти?
Рассмотрим приведенное ниже объявление массива.
int x [8];
Когда компилятор обнаруживает объявление массива, он сразу же резервирует для него место. В нашем случае я объявил целочисленный массив с 8 элементами. Когда компилятор обнаружит это, он немедленно зарезервирует 16 байтов в памяти (2 байта для каждого элемента). В нашем случае мы не инициализируем массив с его объявлением, поэтому он будет содержать некоторое значение мусора по умолчанию. Причиной значений мусора являются его класс хранения . По умолчанию массив имеет «авто» класс хранения.
Массив состоит из смежных областей памяти. Это означает, что все значения внутри массива будут храниться в смежных частях памяти. Оформить заказ на рисунке ниже.
Проверка границ
Рассмотрим код ниже
int x [8];
х [10] = 98;
х [10] = 98;
Размер нашего массива составляет всего 8 элементов. Но мы храним значение 98 на 10 месте. Как это возможно? Это, конечно, невозможно. Но помните, что в этой ситуации компилятор не будет препятствовать вам, выдавая некоторую ошибку. Это не даст вам никакого предупреждения. Поскольку в массивах нет проверки границ. Компилятор никогда не проверяет ограничение массива при сохранении значений.
Так где же будет храниться это значение?
Может храниться где угодно. Вероятно, сразу после смежного расположения массива. Или вершина массива. Может храниться где угодно. И помните, что иногда такие маленькие ошибки могут полностью испортить вашу программу и даже привести к зависанию компьютера. Поэтому я настоятельно рекомендую вам запомнить эту ошибку при хранении значений внутри массива.
Может храниться где угодно. Вероятно, сразу после смежного расположения массива. Или вершина массива. Может храниться где угодно. И помните, что иногда такие маленькие ошибки могут полностью испортить вашу программу и даже привести к зависанию компьютера. Поэтому я настоятельно рекомендую вам запомнить эту ошибку при хранении значений внутри массива.
Комментариев нет:
Отправить комментарий