Структуры С
Личные типы данных
Встроенные типы данных
План лекции
Лекция 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;
}