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

Программирование и структуры данных

2007 г.

Лекция 1

Структуры в языке С. Работа с файлами.

Абстрактные структуры данных и структуры хранения.

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

1

Программирование и структуры данных

2007 г.

Структуры

Cтруктура объединяет логически связанные данные разных типов.

Тип структуры задает порядок следования отдельных элементов (полей) в структуре и их типы. Описание структурного типа имеет вид:

struct имя_типа

{ Описание элементов };

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

2

Программирование и структуры данных

2007 г.

 

 

 

 

Примеры:

struct

ANKETA

 

 

 

 

{

char

fio[20];

/*

фамилия и инициалы */

 

 

int

gr;

/*

год рождения */

 

 

char adr[40];

/* адрес */

 

};

 

 

 

 

 

struct

BOOK

 

 

 

 

{

char author[40];

 

/* автор книги */

 

 

char

name [50];

/* название */

 

 

int year;

 

/* год издания */

 

 

int pages;

 

/* число страниц */

 

};

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

3

Программирование и структуры данных

2007 г.

• Описание структурной переменной имеет вид:

struct имя_типа имя_переменной;

Например:

struct ANKETA a1;

struct BOOK

b1,b2;

 

 

struct BOOK

mb[100];

 

/* массив из 100

структур типа BOOK */

 

struct ANKETA *p1;

/* указатель на

структуру типа ANKETA */

struct BOOK

*p2 = &b2;

/* указатель на

структуру типа BOOK, ссылающийся на переменную b2 */

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

4

Программирование и структуры данных

2007 г.

a1

b1

p2

 

b2

 

 

 

 

 

fio

 

author

author

 

 

 

 

gr

name

 

 

name

adr

year

 

 

year

 

pages

 

 

pages

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

5

Программирование и структуры данных

2007 г.

При объявлении структурных переменных можно их инициализировать, например:

struct BOOK b3 = { “Толстой Л.Н.”, ”Война и мир”, 1995, 1350};

Для однотипных структур определена операция присваивания.

Пример:

b1=b3;

mb[0]=b3;

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

6

Программирование и структуры данных

2007 г.

Обращение к полям структурных переменных

Для обращения к отдельным элементам

(полям) структурных переменных используется операция выбора .” или “->” :

имя_переменной . имя_элемента

или

имя_указателя -> имя_элемента

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

7

Программирование и структуры данных

2007 г.

Пример 1

/* ввод значения структурной переменной b2 типа BOOK*/

struct BOOK b2; gets(b2.author); gets (b2.name);

scanf (“%d%d”, &b2.year, &b2.pages);

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

8

Программирование и структуры данных

2007 г.

Пример 2

struct ANKETA a2;

strcpy (a2.fio, “Иванов А.В.”); а2.gr = 1980;

strcpy (a2.adr, “ул.Пушкина, д.10, кв.5”);

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

9

Программирование и структуры данных

2007 г.

Пример 3

struct BOOK b3 = { “Толстой Л.Н.”,

”Война и мир”, 1995,1350}; struct BOOK *p3 = &b3;

printf (“%s, %s, %d г., %d с.\n”, p3->author, p3->name, p3->year, p3->pages);

Результат на экране:

Толстой Л.Н., Война и мир, 1995 г., 1350 с.

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

10

Соседние файлы в папке Презентация лекций (3 семестр)