Массивы; их описание, размещение в памяти, инициализация. — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Массивы; их описание, размещение в памяти, инициализация.

2019-08-07 158
Массивы; их описание, размещение в памяти, инициализация. 0.00 из 5.00 0 оценок
Заказать работу

Размещение элементов массива в памяти выполняется последовательно.

Количество элементов в массиве определяет размер массива и является константным выражением.

Имя массива определяет адрес первого элемента массива.

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

При создании массива память под все его элементы выделяется последовательно для каждого элемента в зависимости от типа массива. Для многомерных массивов в первую очередь изменяются значения самого правого индекса.

Например, для массива char aCh[2][4] будет выделено восемь байтов памяти, в которых в следующем порядке будут размещены элементы массива:

Элемент aCh[0][0] aCh[0][1] aCh[0][2] aCh[0][3] aCh[1][0] aCh[1][1] aCh[1][2] aCh[1][3]

N байта 1     2      3            4     5            6    7           8

Двухмерные массивы можно рассматривать как матрицу, в которой первый индекс определяет строку, а второй индекс - столбец. Порядок расположения элементов матрицы в памяти - по строкам.

При размещении трехмерного массива char aCh[3][2][5] память под элементы этого массива будет выделяться последовательно в соответствии со следующими значениями индексов:

Общий объем выделяемой под массив памяти определяется как произведение всех размерностей массива (общее число элементов), умноженное на длину типа данных массива.

Строки; их описание, инициализация.

Символьные строки организуются как массивы символов, последним из которых является символ \0, внутренний код которого равен нулю.

 

На длину символьного массива в Си нет ограничения.

Форма записи:

char string[10];

где: string – имя строковой переменной              

  10 – размер массива, то есть в данной строке может поместиться 9 символов, последнее место отводится под нуль-терминатор

Строка при объявлении может быть инициализирована начальным значением, например, так:

char string[10] = "abcdefghf\0";

10. Функции для определения длины строки, сравнения и копирования строк.

Сравнение строк:

int strcmp (char * s 1, char * s 2) (сравнивает s1 и s2, возвращает значение 0, если строки эквивалентны)

int strncmp (char * s 1, char * s 2, int n) ( сравнивает не более n символов строк s1 и s2, возвращает значение 0, если начальные n символов строк эквивалентны)

Определение длины строки:

int strlen(char *s) (возвращает количество символов в строке s)

Копирование строк:

char * str с py (char * s 1, char * s 2) (копирует строку s2 в строку s1, включая '\0', возвращает s1)

char * strncpy (char * s 1, char * s 2, int n) (копирует не более n символов строки s2 в строку s1, возвращает s1;)

Структуры. Шаблон структуры, имя структуры, указатель на структуру, доступ к элементам структуры.

Структура является собранием одного или более объектов (переменных, массивов, указателей, других объектов), которые для удобства работы с ними объединены под одним именем. Структура – это сложный тип данных представляющий собой упорядоченное в памяти множество элементов различного типа. Каждый элемент в структуре имеет свое имя и называется полем. В СИ элементы структуре располагаются последовательно, а размер структуры определяется суммой размеров всех элементов.

Форма записи:

struct [имя типа]

  {

   поле_1;

   поле_2;

   ...

   поле_N;

  } [список переменных];

Заказ памяти для одномерного массива.

Форма записи:

с =(int*)malloc(n*sizeof(int));

где: int – тип

   с - массив

   malloc – размер массива в байтах

   sizeof – размер одного элемента массива в байтах

   n – количество элементов в массиве

Заказ памяти для матрицы.

Форма записи:

с =(int*)malloc(n*sizeof(int));

x=(int*)malloc(m*sizeof(int));

a=(int*)malloc(m*sizeof(int));

где: int – тип

   c – массив строки

   x – массив столбца

   a – матрица

   malloc – размер массива (строка или столбец) в байтах

   sizeof – размер одного элемента массива (строки и столбца) в байтах

   n – количество элементов в строке

   m – количество элементов в столбце

Заказ памяти для массива структур.

tel=(TEL *)malloc(sizeof(TEL)*n);

где: TEL – тип

   tel – массив строки

   malloc – размер структуры в байтах

   sizeof – размер одного элемента структуры в байтах

   n – количество элементов в структуре


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.