Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_dlya_podgotovki_k_ekzamenu_po_distsipli...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
607.23 Кб
Скачать
  1. Объявление переменной. Классы памяти переменных. Области действия и время "жизни".

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

Пример объявления переменных

int a; // объявление переменной a целого типа.

float b; // объявление переменной b типа данных с плавающей запятой.

double c = 14.2; // инициализация переменной типа double.

char d = 's'; // инициализация переменной типа char.

bool k = true; // инициализация логической переменной k.

При объявлении переменной компилятор отводит ей место в памяти в зависимости от её типа. Стандартными средствами AVR GCC работает с типами данных char (символьный тип) и int(целочисленный тип).

Глобальные переменные:

Переменная, объявленная на внешнем уровне, имеет глобальное время жизни. 

Локальные переменные:

Переменная, объявленная на внутреннем уровне, доступна только в том, блоке в котором она объявлена, независимо от класса памяти

  1. Массивы. Одномерные. Многомерные. Объявление. Инициализация. Использование индексных выражений для доступа к элементам массива.

Массив – это тип данных, представляющий собой ограниченный набор упорядоченных элементов одного и того же типа, имеющих одно и то же имя.

Одномерные массивы

Как и другие переменные, массив должен быть объявлен. Существует несколько способов объявления массива.

Общая форма объявления одномерного массива имеет следующий вид:

<класс> тип имя [размер]

Таким образом, элементами массива, состоящего из N элементов, являются переменные с индексами

a[0],a[1],…,a[N–1]

Стандартом C определены многомерные массивы. Простейшая форма многомерного массива – двумерный массив, т. е. массив одномерных массивов.

Описание двумерного массива выглядит следующим образом:

<класс> тип имя [N1] [N2];

где N1,N2 – количество строк и столбцов.

Массив в памяти располагается по строкам:

ID[0][0],…,ID[0][N2–1],

ID[N1–[0],…,ID[N1–1][N2–1], где ID – имя массива.

Ниже приведены примеры объявления массивов:

1

2

3

4

int arr[100];

int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

char ch[]  = {'R','u','b','y','D','e','v','.','r','u'};

char ch2[] = "RubyDev.ru";

 После имени переменной ссылающейся на массив мы в квадратных скобках указываем индекс (еще его называют ключом) элемента

Для доступа к элементам массива существует два различных способа. Первый способ связан с использованием обычных индексных выражений в квадратных скобках, например, array[16]=3 или array[i+2]=7.

Второй способ доступа к элементам массива связан с использованием адресных выражений и операции разадресации в форме *(array+16)=3 или *(array+i+2)=7. При таком способе доступа адресное выражение равное адресу шестнадцатого элемента массива тоже может быть записано разными способами *(array+16) или *(16+array).

При реализации на компьютере первый способ приводится ко второму, т.е. индексное выражение преобразуется к адресному. Для приведенных примеров array[16] и 16[array] преобразуются в *(array+16).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]