КАТЕГОРИИ: Архитектура-(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) |
Инициализация структур
... ... Структуры Перечисления Переименование типов Типы данных, определяемые пользователем Ссылки на функцию Подобно указателю на функцию определяется и ссылка на функцию: тип_функции(&имя_ссылки)(параметры) инициализирующее_выражение; Пример 91. int f(float a,int b){... } /*определение функции*/ int(&fref)(float,int)=f; //определение ссылки Использование имени функции без параметров и скобок будет восприниматься как адрес функции. Ссылка на функцию является синонимом имени функции. Изменить значение ссылки на функцию нельзя, поэтому более широко используются указатели на функции, а не ссылки.
Пример 92. #include <iostream.h> void f(char c) {cout<<”\n”<<c;} void main() { void (*pf)(char); //указатель на функцию void(&rf)(char); //ссылка на функцию f(‘A’); //вызов по имени pf=f; //указатель ставится на функцию (*pf)(‘B’); //вызов с помощью указателя rf(‘C’); //вызов по ссылке } Типу можно задавать имя с помощью ключевого слова typedef: typedef тип имя_типа [размерность]; Пример 93 typedef unsigned int UNIT; typedef char Msg[100]; Такое имя можно затем использовать также как и стандартное имя типа: UNIT a,b,c; //переменные типа unsigned int Msg str[12]; /* массив из 10 строк по 100 символов*/
Если надо определить несколько именованных констант таким образом, чтобы все они имели разные значения, можно воспользоваться перечисляемым типом: enum [имя_типа] {список констант}; Константы должны быть целочисленными и могут инициализироваться обычным образом. Если инициализатор отсутствует, то первая константа обнуляется, а остальным присваиваются значение на единицу большее, чем предыдущее.
Пример 94 enum Err{ErrRead, ErrWrite, ErrConvert); Err error; .... switch(error) { case ErrRead: ….. case ErrWrite: ….. case ErrConvert: ….. } Структура – это объединенное в единое целое множество поименованных элементов данных. Элементы структуры (поля) могут быть различного типа, они все должны иметь различные имена. Форматы определения структурного типа следующие: 1. struct имя_типа //способ 1 { тип 1 элемент1; тип2 элемент2; }; Пример 95 struct Date //определение структуры { int day; int month; int year; }; Date birthday; //переменная типа Date
2. struct //способ 2 { тип 1 элемент1; тип2 элемент2; } список идентификаторов;
Пример 96 struct { int min; int sec; int msec; }time_beg,time_end; В первом случае описание структур определяет новый тип, имя которого можно использовать наряду со стандартными типами. Во втором случае описание структуры служит определением переменных.
3.Структурный тип можно также задать с помощью ключевого слова typedef:
Пример 97. способ 3 Typedef struct { floar re; float im; }Complex; Complex a[100]; /*массив из 100 комплексных чисел.*/ Для инициализации структур значения ее полей перечисляют в фигурных скобках.
Пример 98 1. struct Student { char name[20]; int kurs; float rating; }; Student s={”Иванов”,1,3.5}; 2. struct { char name[20]; char title[30]; float rate; } employee={“Петров», “директор”,10000};
Дата добавления: 2014-11-29; Просмотров: 600; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |