Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodicheskie_ukazaniaOOP_1_chast.doc
Скачиваний:
6
Добавлен:
23.11.2019
Размер:
743.42 Кб
Скачать

Контрольные вопросы

  1. Способ описания нединамического массива.

  2. Какой максимальный номер элемента у нижеследующего массива: int mas[100].

  3. Производится ли автоматический контроль выхода индекса за границы массива.

  4. Для объявления массива

Double score[5];

Укажите следующее:

    1. имя массива;

    2. базовый тип данных;

    3. объявленный размер массива;

    4. диапазон значений индекса;

    5. один из элементов массива.

  1. Допущены ли ошибки в следующих объявлениях, если да, то какие?

    1. int x[4] = { 8, 7, 6, 4, 3 };

    2. int x[] = { 8, 7, 6, 4 };

    3. const int SIZE = 4;

int x[SIZE];

ЛАБОРАТОРНАЯ РАБОТА 5

Массивы и указатели

Цели:

Организация динамических массивов.

Краткие теоретические сведения

При традиционном определении массива:

тип имя_массива [количество_элементов];

общее количество памяти, выделяемой под массив, задается определением и равно

количество_элементов * sizeof(тип).

Указатели

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

a=10;

Выражение &a позволяет получить адрес участка памяти, выделенного переменной а. Операция & применима только к объектам имеющим имя и размещенным в памяти.

. Указатель - это переменная, значением которой служит адрес объекта конкретного типа.

Нулевой адрес обозначается константой NULL, которая определена в заголовочном файле stdio.h. Чтобы определить указатель надо сообщить на объект какого типа ссылается этот указатель.

char *z;

int *k,*i;

float *f;- это операция разыменования. Операндом этой операции всегда является указатель.

  • Операции над указателями.

  • присваивание (=);

  • получение значения объекта, на который ссылается указатель (*);

  • получение адреса самого указателя (&).Пример:

int date = 10;

int *i, *k;;

i = &date;

k = i;

z = NULL;

С помощью унарных операций ++ и –- числовые значения переменных типа указатель меняются по разному, в зависимости от типа данных, с которым связаны эти переменные.

Пример:

char *z;

int *k,*i;

float *f;

. . . . . . .

z++; // значение изменяется на 1

i++; // значение изменяется на 2

f++; // значение изменяется на 4

Т. е. при изменении указателя на 1, указатель переходит к началу следующего (предыдущего) поля той длины, которая определяется типом объекта, адресуемого указателем.

Указатели и массивы

Имя массива без индекса является указателем-константой, т. е. адресом первого элемента массива (a[0]).

a

*a = = a[0] ;

*(a+1) = = a[1];

. . . . . . . . .

*(a+i) = =a[i];

Для двумерного массива int a[5][5]:

a[m][n] = = *(a[m]+n) = = *(*(a+m)+n);

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