Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

[Информатика] Лекции 3-7

.pdf
Скачиваний:
12
Добавлен:
21.03.2016
Размер:
3.52 Mб
Скачать

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

Лекция 4

 

 

Массивы

Одномерные

def: Набор элементов одного и

Двумерные

того же типа, объединенных

N-мерные

общим именем

 

Статические

Динамические

Одномерный статический массив

#define N 6 int main(){

int A[N]={1, 3, 2, 4, 0, 0};

A[0]=5; return 0;

}

Директива #define определяет идентификатор и последовательность символов, которая будет подставляться вместо идентификатора каждый раз, когда

он встретится в исходном файле. Идентификатор

называется именем макроса, а сам процесс замены — макрозаменой.

Двумерный статический массив

#define N 2 #define M 3 int main(){

int A[N][M]={1, 3, 2, 4, 0, 0}; A[0][0]=5;

return 0;

}

Указатель

int* Joe;

Что делает указатель?

Неправильно: Правильно: Содержит адрес элемента памяти. def: переменная, диапазон значений которой состоит из адресов ячеек памяти

Что делать с указателями?

• int* A, *B, C=3;

1.Предоставлять им шанс указывать на переменную

A=&C; // A указывает на С

2.Подпортить переменную, на которую он указывает

*A=4; // С равно 4

3. Творить зло

A=B; // А указывает туда же куда и B // Только вот куда?

Допустимые операции с указателями

присваивание

разадресация

сложение с константой, инкремент, декремент

сравнение

приведение типов

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

int main(){

int* A, *B, *C, k;

printf(“Input number of elements:”); scanf(“%d”, &k);

A= new int[k];

B= (int*) malloc(k*sizeof(int)); C= (int*) calloc(k, sizeof(int)); return 0;

}