Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Двухмерные массивы. Массивы строк.Содержание книги
Поиск на нашем сайте
Вы можете объявить двухмерный массив следующим образом: Выражение matrix[0] обозначает первую строку, выражение matrix[1] – вторую и т.д. Чтобы получить доступ к элементам массива, используйте две пары квадратных скобок. Оператор #include <stdio.h> void main(){ int A[100][100]; // массив 100х100 int i,j; // индексы для перемещения по массиву int n; // кол-во строк int m; // кол-во столбцов // ввод размеровматрицы printf("input emount of rows"); scanf("%d",&n); printf("input emount of collomns"); scanf("%d",&m); // ввод значений матрицы for (i=0;i<n;i++) for (j=0;j<n;j++){ printf("input A[%d][%d]",i,j); scanf("%d",&A[i][j]); } // вывод значение матрицы for (i=0;i<n;i++){ for (j=0;j<n;j++) printf("%d ",A[i][j]); printf("\n"); } } Массивы строк Пример объявления символьного массива. char str[] = "объявление символьного массива"; Следует учитывать, что в символьном литерале находится на один элемент больше, так как последний из элементов является управляющей последовательностью ’\0’.
Листинг 1. months (запоминание названий месяцев в массиве): #include <stdio.h> #define NUMMONTHS 12 char months[NUMMONTHS][4] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; main() { int month; for(month=0; month<NUMMONTHS; month++) printf(?%s\n?, months[month]); return 0; } Объявленный в строке 5 массив months (месяцы) запоминает 12 трехсимвольных строк, оканчивающихся нулевым байтом. Выражение months[0] относится к Jan, months[1] – Feb и т. д. Такие выражения наталкивают нас на восприятие массива months как одномерного. Но на самом деле он имеет два измерения. Например, выражение months[1][2] ссылается на символ b строки “Feb”.
Доступ к элементам массива может производиться двумя различными способами. Первый способ связан с применением обычных индексных выражений в квадратных скобках, например: Второй способ доступа к элементам массива связан с применением адресных выражений и операции разадресации в виде *(array+16) = 3 или *(array+i+2) = 7. При данном способе доступа адресное выражение соответствует адресу шестнадцатого элемента массива, тоже может быть записано различными способами: *(array+16) или *(16+array). При работе на компьютере первый способ приводится ко второму, т. е. индексное выражение стано- вится адресным. Для ранее рассмотренных примеров array[16] и 16[array] преобразуются в *(array+16). Для доступа к начальному элементу массива, т. е. к элементу с нулевым индексом, можно применять просто значение указателя array или ptr. Любое из присваиваний
|
||||
Последнее изменение этой страницы: 2021-08-16; просмотров: 65; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.241.235 (0.005 с.) |