Структура като аргумент на функцията
Функция повикване за трансфер значение копия структурна променлива (или отделни нейни области) води до допълнителни загуби във времето, за да запишете копие на променливата в структура стек, но манипулиране на копието не се отразява на оригиналната стойност. По същата причина, функцията връща променлива структура е възможно (връщане imya_strukturnoy_peremennoy). но изисква разходите за настаняване в стойността на стека връщане и след това да го копирате от променлива lvalue купчина от същия тип като върнатата стойност на функцията.
невалидни f3 (книга); // функция, която приема аргумент "тип структура на книгата»
невалидни f4 (Book *); // функция получава аргумент
// "указател към структура тип книга»
Book е (); // функция връща структура от типа на книги
Book * f1 (); // Функцията връща указател към тип структура Резервирай
книга f2 (); // функция връща препратка към тип структура Резервирай
Примери за работа със структурите
1. Определяне на структурен тип комплекс, представляващ комплекс число, определено в алгебрични форма и идентифициране структурните променливите х, у от типа:
структура на комплекс поплавък им; // имагинерната част на броя Така x.re - достъп до областта на реалната част на комплексно число х, y.im - достъп до областта на имагинерната част на комплексното число у, Тогава функциите за вход, изход, освен на комплексни числа може да изглежда така: структура на комплекс комплекс четене (); // функция прототип въвеждане на комплексно число нищожен печат (комплекс); // функция дисплей прототип комплексно число на екрана нищожен добавка (комплекс, комплекс, комплекс *); // функция прототип на прибавяне на комплексни числа невалидни ADD1 (конст сложни, конст комплекс, комплекс); комплекс С1, С2, С3, С4; // определение на комплексни числа С1 = четене (); // наричаме функцията на вход добави (В1, В2, С3); печат (C1); Cout <<"\t + \t" < печат (c2); Cout <<" = " < печат (C1); Cout <<"\t + \t" <