Цю операцію також називають операцією вибору операнда. Вона виконується над трьома операндами (єдина тернарна операція С++) і записується так:
вираз_1 ? вираз_2 : вираз_3
Якщо значення виразу 1 істинне (не дорівнює нулю), то результатом умовної операції є значення виразу 2. Якщо значення виразу 1 хибне (дорівнює нулю), то результатом умовної операції є значення виразу 3. У багатьох випадках замість умовного оператора if можна використовувати умовну операцію, що дозволяє скоротити програму та зробити її більш наочною.
#include <iostream>
using namespace std;
int main(){
int a = -1, b = 2, t;
t = a > b ? a : b;
cout << "max(a,b) = " << t << endl; // 2
t = a > 0 ? a : -a;
cout << "abs(a) = " << t << endl; // 1
}
Операція визначення розміру sizeof
Унарна операція sizeof повертає обсяг пам'яті, який займає або потребує її операнд. Обсяг пам'яті визначається в байтах. Формат запису операції:
sizeof (тип)
sizeof ім’я_змінної
В якості прикладу використання операції визначення розміру знайдемо типи основних типів даних мови програмування С++ для компілятора Microsoft Visual Studio 2010.
#include <iostream>
using namespace std;
int main(){
cout << "sizeof (float)\t"
<< sizeof (float) << endl; // 4
cout << "sizeof (double)\t"
<< sizeof (double) << endl; // 8
cout << "sizeof (long double)\t"
<< sizeof (long double) << endl; // 8
cout << "sizeof (char)\t"
<< sizeof (char) << endl; // 1
cout << "sizeof (short int)\t"
<< sizeof (short int) << endl; // 2
cout << "sizeof (int)\t"
<< sizeof (int) << endl; // 4
cout << "sizeof (long int)\t"
<< sizeof (long int) << endl; // 4
cout << "sizeof (long long int)\t"
<< sizeof (long long int) << endl; // 8
}
Визначимо обсяг пам'яті, необхідний для збереження результатів обчисленні різних виразів. В першому випадку тип результату int, в другому – double.
#include <iostream>
using namespace std;
int main(){
cout << sizeof (1 + 1) << endl; // 4 - int
cout << sizeof (1. + 1.) << endl; // 8 - double
}