КАТЕГОРИИ: Архитектура-(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) |
Уровень 1
ОПЕРАТОРЫ. ДОПОЛНЕНИЕ В этом разделе рассматривается полный перечень операторов языка C, указывается приоритет и порядок выполнения каждого из них. Это связано с тем, что в разделе 4 были приведены не все операторы языка. Операторы языка Basic ранее были рассмотрены практически полностью и поэтому не обсуждаются. Каждый оператор характеризуется: числом операндов, уровнем (приоритетом) и порядком выполнения. По числу операндов операторы делятся на одноместные (унарные), двуместные (бинарные) и трехместные (тернарные). Уровень 1 означает наибольший приоритет. Порядок выполнения операторов одного уровня может быть слева направо (à) и справа налево (ß). Порядок выполнения: à Операторы: () [ ]. -> Первые два оператора означают: (...) – список аргументов процедуры, [...] – индексирование (вычисление индексного выражения). Пример. int *(*(*x)[6])(); // Указатель на массив из 6 указателей на функцию, возвращающей указатель на int. Два последних оператора реализуют обращение к элементу структуры, причем оператор -> использует указатель на структуру. Первый вариант обращения имеет вид: <имя_структуры>. <имя_элемента или подструктуры> [. <имя_элемента или подструктуры>]... Пример. Структура, описывающая произвольную дату. struct date{ int day; // День месяца int month; // № месяца int year; // Год int year_day; // № дня в году char mon_name[4];// Краткое название месяца }data; .............................................. data.year // Извлекается значение года data.mon_name[2] // 3-я буква названия месяца Пример. Объявление типа структуры (память не выделяется). #define NameSize 25 #define AddrSize 40 ................................... struct person{ char name[NameSize]; // Фамилия И.О. студента char address[AddrSize]; // Адрес struct date birthdate; // Дата рождения struct date insdate; // Дата поступления в институт }; Размеры символьных массивов задаются с помощью символических констант. В качестве элементов структуры person используется ранее объявленный тип структуры date. Определение переменной типа person: struct person student; Обращение к элементу структуры может иметь вид: student.birthdate.month // Месяц рождения студента Те же типы структур можно объявить с помощью инструкции определения типа typedef. Более того, такой способ является предпочтительным, поскольку при определении переменных не надо употреблять ключевое слово struct. Пример. typedef struct { int day; int month; int year; int year_day; char mon_name[4]; } date; typedef struct { char name[NameSize]; char address[AddrSize]; date birthdate, insdate; } person; Определение переменных: person student; date *pd; Обращение к элементу структуры имеет тот же вид, что и ранее: student.birthdate.month Для того, чтобы при обращении к элементу структуры использовать указатель и оператор ->, необходимо задать ему значение. Это можно сделать, например, так: pd=&student.birthdate; Тогда допустимо обращение вида: (*pd).year или pd->year
Дата добавления: 2014-12-27; Просмотров: 363; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |