Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Librys.value[0] //ошибка

Описание структуры можно размещать внутри функции, тогда оно будет доступно только в этой функции, либо вне всех функций, тогда оно будет глобальным. Если описание структур используется в нескольких файлах, то это описание обычно помещают в заголовочный файл и включают в текстовый файл при помощи

Будет выделена память для объявленных переменных.

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

Задает ее внутреннюю организацию, описывая поляя, входящие в состав структуры.

struct [имя_типа_структуры]

{ тип поле; [ { тип поле;}… ] };

Например:
struct emp
{
int empno;
char value[10];
double salary;
};
Элементами структуры могут быть массивы или другие структуры (поле value -массив).

Определение структурной переменной

Формат:

имя_типа_структуры список_переменных;

Например:

emp a; //в С++

emp a1,a2,a3; //в С++

struct emp a; //в С

struct emp a1,a2,a3; //в С

Опишем книгу:
int MAXTIT=41, MAXAUT=31;
struct book {
char title[MAXTIT];
char author[MAXAUT];
float value; //цена книги
};
book libry; // переменная типа book
Имя типа структуры нужно, если структура будет использоваться неоднократно.Тогда можно объявлять переменные такого типа неоднократно:
book my_book; // переменная типа book
Но если структура используется один раз для объявле-ния переменных такого типа, то можно объединить объявление типа и определение переменных:
struct {
char title[MAXTIT];
char author[MAXAUT];
float value; //цена книги
} libry;

Однако если имя_типа_структуры не указывается, то структурные переменные данного типа могут быть объявлены только единожды.
struct {int x; int у; float length;} vector1;
После этого программист больше не может объявить переменные данного типа, так как не существует идентификатора типа. Следовательно, переменные безымянных структур не могут передаваться функциям.
struct tvector
{ int x; int у; float length; } vector2;
tvector vector3;

#include "имя_файла"

Доступ к полям структуры
Для доступа к элементу структуры используется операции точка (.). Операция точка называется операцией доступа к полю структуры.
Формат доступа к полю:
имя_структурной_переменной.имя_поля

Введем данные для переменной libry:
printf(”название книги\n”);
gets(libry.title);
printf(”автор книги\n”);
gets(libry.author);
printf(”цена книги\n”);
scanf( %f”,&libry.value);
Инициализация структур
Структурные переменные могут инициализироваться при их определении. Для этого после имени структурной переменной располагают оператор присваивания и в фигурных скобках перечисляют значения полей структуры.
emp x={10,"Paul",200.15};
book libry1 = {”Обрыв”,”Н.А.Гончаров”,40000.};

Присваивание структурных переменных
emp y;
book libry2;
y = x;
libry2 = libry1;
Выполнять присваивание можно только переменным одного и того же типа.
Можно присваивать значения полям:
libry2.value=70000.0;
strcpy(libry2.author,”Бьерн Страуструп");

Обращение к элементам массива структур

Структурные переменные могут быть элементами массива.

book librys[100];
// массив из 100 элементов

librys[0].value;-цена 1-ой книги

librys[4].title;-название 5-ой книги

<== предыдущая лекция | следующая лекция ==>
Будет выведено не значение east, а ее внутреннеее представление , т.е. число | Многие представления данных используют указатели на структуру в качестве своих полей (списки, например)
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 304; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.