Оператор виводу зазвичай застосовується для запису на стандартний висновок cout. Наприклад, програма
# Include <iostream>
int main ()
{
cout << "плетуха Анна Лівія \ n";
}
друкує на терміналі рядок:
плетуха Анна Лівія
Є оператори, що приймають аргументи будь-якого вбудованого типу даних, включаючи const char *, а також типів string і complex із стандартної бібліотеки. Будь-яке вираження, включаючи виклик функції, може бути аргументом оператора виведення за умови, що результатом його обчислення буде тип, який приймає яких-небудь варіантом цього оператора. Наприклад, програма # include <iostream>
# include <string.h>
int main ()
{
cout << "Длина" Улисс "равна: \ t";
cout << strlen ("Улисс");
cout << '\ n';
cout << "Размер" Улисс "равен: \ t";
cout << sizeof ("Улисс");
cout << endl;
}
45. Структури
Структури - це особливии комбінований тип даних, якии об єднує у спільне ціл набір логічно пов'язаних між собою різнотипних компонентів. Складові частини структури називають полями або елементами. Кожне поле структури має свій тип і своє імя.
Шаблони структур. Шаблон структури оголошується наступною синтаксичною конструкцією:
struct тег_структури { типполяї ім 'я_поля1 ; тип_поля2 ім'я_поля2;
. . .
тип поляк ім'я_поляс;
} ;
тут struct - службове (ключове) слово, що специфікує структуру; тег_структури - ім'я, яким позначатимуть у програмі структури даної форми. Список полів структури охоплюється фігурними дужками {}, після правої дукки } записується Знак ; (за умови, що після шаблону структури не оголошено структурних змінних). Кожне поле структури описується як змінна - типом та іменем.
46. Об'єднання - це особливий тип даних, який дає змогу записувати в одну і ту ж встановлену ділянку оперативної пам'яті дані різних типів і розмірів. Таким чином створюється ділянка пам'яті спільного користування, до якої можна звертатись різними способами через єдину змінну, що має тип об'єднання.
Оголошення об'єднання подібне до оголошення структури: задається шаблон об'єднання та перелічуються відповідні змінні. Так само, як і для структур, шаблон об'єднання можна оголошувати окремо або одночасно з оголошенням змінних. У разі автономного оголошення шаблону об'єднання застосовують синтаксичну конструкцію, аналогічну до шаблону структури, але починають її ключовим словом union:
union тегоб'єднання { тип_поля1 ім'я_поля1; тип_поля2 ім 'я_поля2,
тип поляк ім 'я поля3;
} ;
Тег об'єднання ідентифікує дане об'єднання, а список полів задає перелік даних, які можна заносити в це об'єднання.
Як і у випадку структур, змінні з типом об'єднання можна оголошувати спільно з оголошенням шаблону або пізніше, використовуючи тип union тег об'єднання. Обсяг ділянки пам'яті, яка виділяється для кожної змінної, що має тип об'єднання, визначається розміром найдовшого поля даного об'єднання.
У декларації typedef можна сумістити оголошення шаблону об'єднання та його найменування. Наведемо приклад оголошення іменованого об'єднання:
47. Поняття про вказівники на мові Сі
Кожна змінна у програмі - це об’єкт, який володіє ім’ям і значенням. Після визначення змінної з ініціалізацією всі звернення у програмі до неї за іменем замінюються компілятором на адресу іменованої області оперативної пам’яті, в якій зберігається значення змінної (Рис. 5.1). Програміст може визначити власні змінні для збереження адрес областей пам’яті. Такі змінні називають вказівниками.
int a=10;
Вказівник визначається наступним чином:
<тип> *<шідентифікатор> <іініціалізатор>;
Приклад 1. Визначення вказівників
int* pa=&a;// вказівник ра містить значення адреси змінної а
float *ptr (NULL); // Нульовий вказівник на об’єкт типу float
char*p; // Неініціалізований вказівник на об’єкт типу char
Значення адреси змінної одержується за допомогою унарної операції ”&”.
Для доступу до комірки пам’яті, виділеної під змінну через вказівник до останнього, слід застосувати унарну операцію розіменування ”*”.