- •2.Информация и данные. Синтаксические, семантические и прагматические аспекты моделирования данных.
- •3.Основы методологии информатики
- •4.Основа технологии решения задач при помощи компьютера
- •5.Жизненный цикл программного продукта. Этапы жизненного цикла
- •6.Техническое проектирование
- •7.Принципы организации пк на примере ibm pc
- •8.Структура программного обеспечения компьютерных систем. Понятие прикладного, инструментального и общесистемного программного обеспечения.
- •10.Принципы организации о.С. На примере Windows
- •11.Microsoft Word
- •12.Математический процессор MathCad
- •13,Табличный процессов Excel
- •14.Субд
- •15.Принцип системного подхода к проектированию алгоритмов и программ
- •16.Концепция объектно-ориентированного программирования.
- •17.Основы программирования на с
- •20.Концепция данных в с. Описание и типы данных.
- •21.Организация ввода и вывода
- •22.Данные типа указатель
- •23.Массивы
22.Данные типа указатель
Указатель представляет собой переменную, значением которой является адрес другой переменной.
С помощью указателей можно осуществлять косвенную адресацию
<тип>*<указатель>
int *p
void *v – неопр тип.
Указатели могут ссылаться на переменные, указатели, массивы, функции.
char * const p – ссылка на неизвестный адрес
const char *p - ссылка на неизменную переменную
Операции:
Операция обращения по адресу
Адресация
<тип> <переменная> int *x
<тип>*<указатель> int *px
Выражения с указателями:
int x,y;
int *px, *py;
px = &x;
py = &y;
*px = 1 <=> x = 1
y = *px + 1
*px+ = 1 <=> x = x + 1
(*px)++
Операции
Присваивание py = px
Сравнение:
равенство ==
неравенство !=
Арифметические ++ ; -- ; + ; -
Преобразования типа
void *vp vp = &i ; *(int*)vp) -> 123
int i = 123
float f = 123,45 vp = &f ; *(float*)vp) -> 123,45
char = 'a'
23.Массивы
Массивы – это множество упорядоченных однородных элементов данных.Массивы:1.Статические – память выделяется заранее до исполнения программы2. Динамические – память выделяется в процессе исполнения программы
Спецификация массивов:
<тип> <имя> [<размер>] = { <начальные значения> }
Доступ к массиву:
по индексу (по порядковому номеру)
mt a[s];
a[i];
a[i++];
a[2];
Нумерация начинается с нуля
int a[5] = {5,4,3,2,1}
float data[3] = {1.2, 1.3, 1.4}
Имя массива по существу является константой-указателем на адрес памяти, в которой расположен массив.
Двумерный массив:
<тип> <имя> [<размер>] = { <начальные значения> }
int matr[2][3];
В памяти элементы располагаются так, что последний индекс меняется быстрее, первый – медленнее.
Двумерный массив рассматривается как массив одномерных массивов.
M[i][j]
int m[2][3] = {{1,2,3}, {4,5,6}}
Доступ к элементам массива. Указатели и массивы.
int a[5];
a[0], a[1], a[2], a[3], a[4]
Размещаются в соседних ячейках оперативной памяти.
а – указатель на a0
a <-> &a[0]
2 способа доступа
a[i]
*(a+i)
a -> a[0]
a+1 -> a[1]
a+2 -> a[2]
int *pa;
pa = a; <=> pa = &a[0]Для многомерных массивов:M[i][j] *(*(m+i)+j) *(pa+i*N+j) n – число столбцов
