[Информатика] Лекции 3-7
.pdfМассивы, указатели, сортировки
Лекция 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;
}