АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Понятие массива, описание массива, размерность массива, размещение в памяти

Читайте также:
  1. B. ОБЩЕЕ МЕДИЦИНСКОЕ ОБОРУДОВАНИЕ (игровое описание)
  2. I. Договоры товарищества. Понятие, типы и виды
  3. I. ЛИЗИНГОВЫЙ КРЕДИТ: ПОНЯТИЕ, ИСТОРИЯ РАЗВИТИЯ, ОСОБЕННОСТИ, КЛАССИФИКАЦИЯ
  4. I. Общее понятие о вещных правах на чужую вещь
  5. I. Общее понятие о залоговом праве
  6. I. Общее понятие о лице в праве
  7. I. Общее понятие о юридическом лице и виды юридического лица
  8. I. Общее понятие об опеке
  9. I. Понятие и анализ оборотного капитала
  10. I. Понятие о договоре
  11. I. Понятие о завещании и его составление (форма)
  12. I. Понятие о семейном праве

Массив – конечная именованная последовательность элементов одного типа.
Описание массива:
<тип> <имя>[<размер_массива>];
Доступ к элементам производится по индексу. Он записывается в квадратных кавычках [ ] и значения индексного выражения никак не контролируется по отношению к размеру массива ни на этапе компиляции, ни на этапе выполнения (может выйти за пределы и компилятор ничего не выдаст).
Для всех массивов, кроме динамического, размер должен быть известен на этапе компиляции – задан константою или константным выражением целого типа(int, char…)
const n = 10;
int mass[n];
int mass2[n*10+15];
Элемент массива имеет индекс от 0 до размерности массива минус один.
Например:
int array[10];
Индекс имеет диапазон 0..9
int array2[n]; - индекс изменяется от 0 до n-1.
Можно сразу задать значения элементам массива:
<тип> <имя>[<размер_массива>] = {<значение эл. через запятую>};
например:
char buf[5]={‘a’,’b’,’c’,’d’,’e’};
int kk[3]={1,2,10};
int nol[100]={0}
В последнем весь массив nol инициализируеться нулями.
Нельзя использовать массивы ссылок.
Имя массива по умолчанию считается указателем на первый элемент массива.
В памяти элементы массива находятся последовательно.

 

26. Описание массива имеет вид:

<тип> <имя_массива>[<констное_выражение>];

Каждый эл-т массива имеет индекс от 0 до кол-ва эл-тов -1.

Например: int Mas1[4]; или const int k=4; int Mas[k];

Массив может быть инициализирован сразу же при описании:

int Mas2[3]={1,2,3}; char guf[3}={'R','I','P'};

int mas3[7]={1,2,3};

В последнем случае, когда указаны не все элементы, оставшиеся заполняются нулями.

Инициализация слишком большого числа элементов (больше размера массива) приводит к ошибке:

int buf1[5]={1,2,3,4,5,6,7}; → error: too many initialized

Если размер массива не задан, он определяется длиной списка:

int buf2[]={1,2,3,4,5}; //размер массива 5.

int mass[5]={1,2,3,4,5}; //mass[0]=1; mass[1]=2;... mass[5]=0

массивы ссылок использовать не разрешается, но массив указателей допустим:

int ix, jx, kx;

int &jar[]={ix, jx, kx}; // приводит к ошибке

int *iar[]={&ix, &jx, &kx}; // правильно

Имя массива по умолчанию считается указателем на первый элемент массива.

arr ↔ & arr [ 0 ]

arr [ i ] ↔ & (arr +i)

int members = sizeof(arr) / sizeof(int);

int a1[100], b1[100];

int * pa=a1; //& a1 [0]

int * pb=b1; //& b1 [0]

for (i=0; i<100; i++)

{* pb ++ = * pa ++;}

Массивы символов и литеральные строки.

Каждый эл-т мас-а символов содержит 1 символ:
char say[5]={‘h’,’e’,’l’,’l’,’o’}; (*)

Допустимой является запись:

char say[]={‘h’,’e’,’l’,’l’,’o’}; //кол-во эл-тов определяется автоматически
Литеральную строку можна представить в виде массива, каждый эл-ент которой есть символ, тогда, в отличии от массива символов, над строкой можно будет осуществлять определенные действия.

char say2[]="hello";

Последним эл-том строки есть числовой ноль, т.е. массив содержит на 1 эл-т больше чем символов.

char say2[5]="hello"; //не поместится – ошибка

но: char say[5]={'h','e','l','l','o'}; //-ок

Если задать массив способом (*), то при работе с ним, как со строкой, обрабатываться будут символы до первого найденного числового нуля. В этом случае можно дополнить вручную:

char say[]={'h','e','l','l','o', '0'};

 


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)