Учебное пособие: C++ Builder. Введение в структурное программирование
Таблица 1.1.
Тип данных | Размер в байтах | Диапазон допустимых значений |
char | 1 | от -128 до 127 |
unsigned char | 1 | от 0 до 255 |
short | 2 | от -32 768 до 32 767 |
unsigned short | 2 | от 0 до 65 535 |
long | 4 | от -2 147 483 648 до 2 147 483 647 |
unsigned long | 4 | от 0 до 4 294 967 295 |
int | 4 | совпадает с long |
unsigned int | 4 | совпадает с unsigned long |
float | 4 | от 1.2Е-38 до 3.4Е38 |
double | 8 | от 2.2Е-308 до 1.8Е308 |
bool | 1 | true или false |
С++ автоматически выполняет преобразования между различными типами данных, когда это возможно.
Пример 1.
// явление "заворачивания"
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>
#include <conio.h>
//----------------------------
#pragma argsused
int main(int argc, char** argv)
{int x;
х = 2147483647;
cout << "x = " << x<<endl;
x++;
cout << "x = " << x<<endl;
getch();
return 0;
}
Операторы С++
! Операторы (operators) используются для обработки данных. Операторы выполняют вычисления, сравнения, присваивания, а также много других специфических задач.
В таблице 1.2 приведены обычно используемые операторы С++
Таблица 1.2.
Оператор | Описание | Пример |
Арифметические операторы | ||
+ | Сложение | Х = Х + Z; |
- | Вычитание | Х = у - 2; |
* | Умножение | х = у * х; |
/ | Деление | х = у / z; |
% | Остаток от деления целых чисел | х=х%у; |
Операторы присваивания | ||
= | Присваивание | х = 10; |
+= | Сложение с присваиванием | х += 10; (то же, что и х = х + 10;) |
-= | Вычитание с присваиванием | х -= 10; |
*= | Умножение с присваиванием | х *= 10; |
/= | Деление с присваиванием | х /= 10; |
&= | Поразрядное И с присваиванием | х &= 10; |
|= | Поразрядное ИЛИ с присваиванием | х |= 10; |
Логические операторы | ||
&& | Логическое И | if (х && OxFF) {...} |
|| | Логическое ИЛИ | if (х || OxFF) {...} |
Операторы отношения | ||
= = | Равно | if (x = = 10) {…} |
!= | Не равно | if (x != 10) {...} |
< | Меньше | if (x< 10) {...} |
> | Больше | if (x > 10) (...) |
<= | Меньше или равно | if (x<=10) {...} |
>= | Больше или равно | if (x >= 10) {...} |
Унарные операторы | ||
* | Косвенная адресация | int х = *у; |
& | Взятие адреса | int* х = &у; |
~ | Поразрядное НЕ | х &= ~0х02; |
! | Логическое НЕ | if (!valid) {...} |
+ | Инкремент | x++; (то же, что и х = х + 1;) |
-- | Декремент | х--: |
Операторы классов и структур | ||
:: | Разрешение области видимости | MyClass::SomeFunction(); |
-> | Косвенный доступ | MyClass->SomeFunction(); |
. | Прямой доступ | MyClass.SomeFunction(); |
Как видите, список операторов слегка ошеломляет, но не пытайтесь сразу запомнить каждый из них. Работая с С++, вы постепенно научитесь использовать все эти операторы.
Следует заметить, что в некоторых случаях операторы могут быть как преинкрементными (++х), так и постинкрементными (х+ +). Преинкрементный (pre-increment) оператор указывает компилятору: «Увеличить значение переменной и затем использовать эту переменную». Постинкрементный (post-increment) оператор указывает компилятору: «Сначала использовать переменную, а затем увеличить ее значение» (см. пример 2).
Пример 2.
#pragma hdrstop
#include <condefs.h>
#include <iostream.h>