Слайды и текст доклада
Pic.1
Многомерные статические массивы.
Pic.2
Многомерные статические массивы Количество размерностей массива практически не ограничено. int a[3][2]; Компилятор Си располагает строки матрицы a в памяти одну за другой вплотную друг к другу.
Pic.3
Компоненты многомерного массива int a[2][3][5]; a – массив из двух элементов типа “int [3][5]” int (*p)[3][5] = a; a[i] – массив из трех элементов типа “int [5]” (i [0, 1]) int (*q)[5] = a[i]; …
Pic.4
Инициализация многомерных массивов int a[3][3] = { {1, 2, 3}, {4, 5} }; int d[][2] = { {1, 2} }; int e[][] = { {1, 2}, {4, 5} }; // error: array type has incomplete element type int b[3][3] = {1, 2, …
Pic.5
Указатели и многомерные массивы Иногда удобно многомерный массив рассматривать как одномерный. #define N 2 #define M 5 . . . int a[N][M]; int *p; . . . for (p = &a[0][0]; p <= …
Pic.6
Указатели и многомерные массивы Обработка строки матрицы (обнуление i-ой строки) // указатель на начало i-ой строки int *p = &a[i][0]; &a[i][0] => &(*(a[i] + 0)) => &(*a[i]) …
Pic.7
Указатели и многомерные массивы Обработка столбца матрицы (обнуление j-го столбца) // указатель на строку (строка – это массив из M элементов) int (*q)[M]; Скобки важны из-за приоритета операций! Без …
Pic.8
Передача многомерных массивов в функцию Пусть определена матрица int a[N][M]; Для ее обработки могут быть использованы функции со следующими прототипами: void f(int a[N][M], int n, int m); void f(int …
Pic.9
Особенности использования const void print(const int arr[][M], int n, int m) { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) printf("%d ", arr[i][j]); …
Pic.10
Особенности использования const Формальное объяснение Согласно C99 6. 7. 3 #8 и 6. 3. 2. 3. 2 выражение T (*p)[N] не преобразуется неявно в T const (*p)[N]. Способы борьбы не использовать const; …
Pic.11
Особенности использования const Почему такое неявное преобразование запретили const char c = 'x'; /* 1 */ char *p1; /* 2 */ // warning: initialization from incompatible pointer type const …
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!