Синтаксис: операторы в языке С++

Оператор присвоения

name = value or name; // присвоение

Оператор присваивания требует, чтобы идентификатор (name) на левой стороне был неконстантной переменной. То есть, его значение может быть изменено с помощью выражения, справа.

Проверка на равенство

name1 == name2

Знак == используется для сравнения значений стандартных типов данных, таких как: char, int, double, и т.д. Оператор сравнения возвращает истину, если две переменные равны. Если оператор сравнения применить к массивам или строкам, то результат вы получите самый неожиданный, потому, что он сравнит объемы памяти, которые они занимают, а элементы массивов сравнивать не будет.

Логическое ИЛИ

bollValue1 || bollValue2;

Логическое ИЛИ | | возвращает истину, если один или оба значения истинны, в противном случае — ложь.

Логическое И

bollValue1 && bollValue2;

Логическое И  возвращает истину, если оба условия истинны, в противном случае — ложь.

Логическое НЕ

!boolValue;

Возвращает противоположное значение. Например, !0 — истина. Подробно про использование логических операций в С++ вы можете прочитать у нас на сайте.

Бинарное И

intValue & intValue;

Бинарное И это логическая операция, которая оперирует отдельными битами из двух своих аргументов. Если биты обоих аргументов установлены в 1, то и результат 1, в противном случае — 0.

Например,  0010 и 0110 возвращается 0010.

Бинарное ИЛИ

intValue || intValue;

Бинарное ИЛИ — побитовый оператор, который оперирует отдельными битами из двух своих аргументов. Если один из битов в двух ее аргументах равен 1, то результат равен 1. В противном случае, если оба бита равны 0, то результат —  0. Подробно о поразрядных логических операциях читаем тут: Поразрядные логические операции

Тернарный оператор

<condition> ? <true-сode> : <false-code>;

Тернарный оператор позволяет выполнять различные коды в зависимости от значения условия, и результатом выражения является результат выполнения кода. Например:

int divide = ( val != 0 ? 5 / val : 0 );

Cначала выполняется проверка, val != 0 или равно, и если условие — истина, то выполняется операция деления — 5 / val. В противном случае возвращаемое значение равно 0. Тернарный оператор отлично подходит для ситуаций, когда вам нужно выбрать два различных значения в зависимости от одного условия. Но это не всегда хороший стиль программирования, поэтому, луше пользоваться оператором выбора if else.

Тернарный оператор особенно полезно использовать при инициализации константных элементов класса, так как эти поля должны быть инициализированы только в списке инициализации. Например:

class Integer
{
private:
    const int * const otherPtr;

public:
    Integer (const int *intPtr)
        : otherPtr( intPtr != 0 : new int( * intPtr ) : 0 )   // инициализатор элемента данных otherPtr класса   Integer        

};

В приведенном выше коде, не используя тернарный оператор, не возможно было бы инициализировать элемент otherPtr разными значениями. в зависимости от ситуации, так как это константный указатель.

P.S.: Все из нас читают электронные книги, книги не только по программированию, но и любые другие. Так вот, большинство книг распространяются в сети в формате pdf. Скачать бесплатно Adobe Reader можно на этом сайте, если кто не в курсе, то эта программа читает pdf-файлы. Как раз то, что вам нужно для чтения электронных книг, бесплатно.

Автор: Marienko L.
Дата: 04.12.2012
Поделиться:

Комментарии

  1. Сергей Ткачёв

    В примере опечатка? я не вижу символа «?». Он должен стоять здесь, как я понял?

    ( intPtr != 0 ? new int( * intPtr ) : 0 )

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.