Структуры С

Личные типы данных

Встроенные типы данных

План лекции

Лекция 6.1. Структуры в языке С.

1. Встроенные типы данных

2. Личные типы данных

3. Структуры С

4. Структуры и функции

5. Примеры использования структур из библиотек

 

 

В C/С++ существуют встроенные простые типы данных (char, int, double и т.д.) Тип переменных говорит о :

§ их размере в памяти;

§ какую информацию они могут хранить;

§ какие действия (операции) можно совершить над ними.

 

 

Программист может создавать личные типы, используя операторы :

§ typedef – синоним стандартного типа;

§ enum – перечисление;

§ struct– структура, запись;

§ class– класс.

 

 

 

Структуры языка С используются для описания данных сложных объектов, например таких как автомобиль, дом, личность, животное и т.д. Представляют собой набор переменных разных типов.


// Пример 6.1.1

// Пример программы с простой структурой языка С

#include <iostream>

using namespace std;

// объявление структуры для карандаша

// члены-данные, свойства, поля (data members, properties, fields)

// длина-см.; диаметр-мм.; резинка; цвет; цена; подпись

typedef unsigned short int USHORT;

enum MyColor {Red, Yellow, Green, Blue, Black, Simple};

 

struct Pencil {

USHORT itsLength;

USHORT itsRadius;

bool itsLastic;

MyColor itsColor;

float itsPrice;

char itsCaption[31];

};

 

// Главная функция

int main() {

setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста

// объявление структурных переменных(объектов)

//Pencil p; //мусор

Pencil p={140,12,true,MyColor::Red,1.8,"Standard"};//инициализация

// обработка структурных переменных(объектов)

// просмотр сведений

cout << "Длина : " << p.itsLength << endl

<< "Радиус : " << p.itsRadius << endl

<< "Резинка : " << p.itsLastic << endl

<< "Цвет : " << p.itsColor << endl

<< "Цена : " << p.itsPrice << endl

<< "Надпись : " << p.itsCaption << endl << endl << endl;

cin.get();

// определение сведений

p.itsLength=100;

p.itsRadius=10;

p.itsLastic=true;

p.itsColor=MyColor::Black;

p.itsPrice=1.5;

//p.itsCaption="KOHINOR"; // присваивание строк С-стиля -> ошибка

strcpy(p.itsCaption,"KOHINOR");

// просмотр сведений

cout << "Длина : " << p.itsLength << endl

<< "Радиус : " << p.itsRadius << endl

<< "Резинка : " << p.itsLastic << endl

<< "Цвет : " << p.itsColor << endl

<< "Цена : " << p.itsPrice << endl

<< "Надпись : " << p.itsCaption << endl << endl << endl;

cin.get();

return 0;

}