ПредишенСледващото

На ви позволява да създавате многомерни масиви. Най-простият вид на многомерен масив е двумерен масив. Двумерен масив - масив от едномерни. В двумерен масив се декларира по следния начин:

тип array_name [размер на второто измерване] [първата резолюция измерване];

За достъп до елемента с индекси 3, трябва да се използва 5 г на масива

В следващия пример, се показва двумерен масив на записани номера от 1 до 12, при което масива.

#include
вътр главния (свободен)
Int т, I, бр [3] [4];
/ * Брой * изтегляне /
за (т = 0; т<3; ++t)
за (I = 0; и<4; ++i)
бр [т] [Ь] = (т * 4) + I + 1;

В този пример, бр [0] [0] е 1, бр [0] [1] има стойност 2, бр [0] [2] - 3, и така нататък. бр [2] [3] има стойност от 12.

Двуизмерни решетки се съхраняват в една матрица, където първият индекс е отговорен за поредица, а втората колона -това. Това означава, че правилният индекса се променя по-бързо от ляво, ако се движите през масива по реда на подреждане на елементите в паметта. Фиг. Тя показва графично представяне на двумерен масив в паметта. Левият индекса може да се разглежда като указател към низа.

Броят на байта памет, необходима за да се настанят на двумерен масив, се изчислява, както следва:

байта = размер на втората резолюция измерване на първото измерване * sizeof (база тип)

Ако приемем, че системата има 2-байтови числа, цялото число масив с размери 10 с 5 ще се 10 * 5 * 2, който е 100 байта.

Когато двумерен масив се използва като аргумент функция, указател към първия елемент. Функцията получава двумерен масив, трябва поне да определя размера на първото измерване, тъй като компилаторът трябва да знае дължината на всяка линия за правилното индексиране на масива. Например, функцията на получаване двумерен число масив с размерите на 5, 10, се обявява, както следва:

Можете да определите размера на второто измерение, но това не е задължително. Компилаторът трябва да знае размера на първото измерение за коректни оператори тип

в функция. Ако низът не е известна, не е възможно да се знае къде започва на следващия ред.

Кратка програма по-долу използва двумерен масив за съхранение на оценката на всеки ученик в класната стая на учителя. Програмата се приема, че учителят има три класа и всеки клас има максимум 30 ученици. Забележете как да получа достъп до ранга на всяка функция:

#include
#include
#include
#include
# определят класове 3
#define СТЕПЕНИ 30
Int клас [КЛАСОВЕ] [СТЕПЕНИ];
невалидни disp_grades (междинно г [] [СТЕПЕНИ]), enter_grades (невалидни);
Int get_grade (междинно бр);
вътр главния (свободен) / * програма за съхраняване на оценки * /
овъгляване СН;
за (;;) направи ФОРМАТ ( "(Д) nter степени \ Н");
ФОРМАТ ( "(R) ДОКЛАД класове \ п");
ФОРМАТ ( "(Q) UIT \ п");
СН = toupper (getche ());
>
докато (гл! = "E" гл! = 'R' ! Ch = 'Q');
превключвател (СН)
случай "Е":
enter_grades ();
прекъсване;
случай "R":
disp_grades (степен);
прекъсване;
случай "Q":
връщане 0;
>
>
>

/ * Задаване на всеки ученически класове * /
невалидни enter_grades (невалидни)
Int т, I;
за (т = 0; т за (I = 0; и клас [т] [Ь] = get_grade (I);
>
>

/ * Действителната оценка влизане * /
Int get_grade (междинно бр) знак и [80];
ФОРМАТ ( "влиза клас за студент. #: \ н", бр + 1);
получава (S);
връщане (atoi (и));
>

/ * Оценки заключение класа * /
невалидни disp_grades (междинно г [] [СТЕПЕНИ])
Int т, I;
за (т = 0; т ФОРМАТ ( "клас #: \ н.", т + 1);
за (I = 0; и ФОРМАТ ( "клас за студент # е \ п ..", т.е. + 1, г [т] [Ь]);
>
>

Фигура. Поставянето на двумерен масив в паметта

Свързани статии

Подкрепете проекта - споделете линка, благодаря!