Справочные данные по языку C++___________________________643

Labell->Caption = grade > 3 ? "Вы хорошо знаете материал" : "Плохо";

в зависимости от значения переменной grade выдаст текст «Вы хорошо знаете ма-
териал» при значении grade, превышающем 3, и текст «Плохо» при меньшем зна-
чении grade.

Оператор с условной операцией выполняет фактически те же функции, что и
оператор if...else (см. раздел 11.8.1.1). Но в ряде случаев применение условной
операции компактнее и нагляднее оператора if...else. К тому же иногда условная
операция может использоваться в таких ситуациях, когда применение оператора
if...else синтаксически невозможно.

В условной операции условие может быть любым скалярным выражением.
Условные выражения могут быть практически любого типа (арифметические, ука-
затели, структуры, объединения), но типы двух выражений в операции должны
быть согласованными. В качестве условных выражений могут также фигуриро-
вать какие-то исполняемые действия.

11.7.9 Операция sizeof

Операция sizeof определяет размер в байтах своего операнда — переменной,
объекта, типа. Возвращаемый результат имеет тип size_t (unsigned).
Операция имеет две формы:

sizeof выражение
sizeof (имя типа)

Например:

sizeof *Labell;

sizeof(TLabel) ;

sizeof a;

sizeof (int);

Во всех случаях операция возвращает целое, равное числу байтов в объекте
(*Label), типе (TLabel, int), переменной (а).

Надо учесть, что размер переменной, объекта, типа может изменяться в зави-
симости от машины и от используемой версии программного обеспечения. Поэто-
му во всех случаях, когда вам требуется знать размер объекта или типа, нельзя по-
лагаться на документацию, а надо использовать операцию sizeof.

Если операндом является выражение, то sizeof возвращает суммарный объем
памяти, занимаемый всеми переменными и константами, входящими в него. Если
операндом является массив, то возвращается объем памяти, занимаемый всеми
элементами массива (т.е. имя массива не воспринимается в данном случае как ука-
затель). Число элементов в массиве можно определить выражением sizeof array/
sizeof array[0].

Если операндом является параметр, объявленный как тип массива или функ-
ции, то возвращается размер только указателя. К функциям операция sizeof не
применима.

Если операция sizeof применяется к структуре или объединению, она возвра-
щает общий объем памяти, включая все наполнение этого объекта.

11.7.10 Операция typeid

Операция typeid возвращает информацию времени выполнения type_info, о
типе или выражении. Операция имеет две формы:

typeid( выражение )
typeid( тип )

2Г