Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Некоторые операции

Напомним основные (предопределенные целиком или базовые, фундаментальные)типы данных | Тип перечисление | Ii) Инициализация указателей | Понятия области видимости идентификатора (и области действия идентификатора) имеют прямое отношение к, так называемым. пространствам имен. | Кратко: for, while, do-while циклы и простые примеры |


Читайте также:
  1. IV.Некоторые задачи
  2. Аддитивная и мультипликативная операции коммутативны
  3. Активные операции коммерческого банка
  4. Атомарные операции
  5. Банковские операции.
  6. В дальнейшем изложении мы будем предполагать применение операции переименования во всех конфликтных случаях.
  7. Вложенные операторы If. Логические операции и выражения

 

(i) Инкремент и декремент: ++ и --. (унарная)

 

Эти операции в общем случае применяются к операндам, которые есть l-value.

Не используйте ++ и/или – с одной и той же переменной более одного раза; не рекомендуется применять эти операции в простых выражениях, где присутствуют переменные с ++/ -- и переменные без ++/--. ++++i увеличивает i на 2, i++++ - ошибка. Операции ++ и – имеют две версии: префиксная (prefix) операция и постфиксная (postfix) операция. Обе версии увеличивают/уменьшают значение операнда на 1, но префиксная версия представляет результирующее значение после увеличения/уменьшения, а постфиксная - перед увеличением/уменьшением:

 

int x = 1, y = 2;

int z = (x++) + (++y); // то же, что и x++ + ++y см.приоритеты!

cout << x << " " << y << " " << z << endl;

 

Выводится: 2 3 4.

 

(ii) Условная операция?: (тернарная)

 

Выражение x? y: z имеет значение y, если x есть истина (true), или z, если x - ложь (false). Избегайте использования этой операции, если она затрудняет чтение исходного кода.

 

(iii) Операция взятия по индексу (индексирование) [ ] (бинарная)

 

Эта операция возвращает элемент массива, который может использоваться как l-value.

Например:

 

int I=0, y, x[10];

y=x[i]; // x – первый операнд, i – второй

 

(iv) Операция обращения к (вызова) функции () (бинарная)

 

Эта операция возвращает значение функции. Она возвращает “значение”, которое является l-value, если функция возвращает ссылку, или r-value – других случаях.

 

//Пример 2-4:

 

// возвращение значения по ссылке

#include <iostream>

using namespace std; // директива using

int x; // глобальная переменная

int& setx(); // прототип функции

int main()

{ // присваивание значения x при

setx() = 13; // помощи вызова функции слева: setx() – l-value

cout << "x=" << x << endl; // вывод нового значения x

return 0;

}

//--------------------------------------------------------

int& setx()

{

return x; // возвращает значение, которое будет изменено

}

 

(v) Операторы присваивания =, +=, -=, и т,д,

 

Операция = возвращает левый операнд после пересылки в него значения правого операнда (т.е. после операции значения обоих операндов идентичны).

 

Операции +=, -=, *=, /=, %= есть комбинация присвоения и соответствующей арифметической операции. Например, выражение x += y эквивалентно x = x + y. Версия операции += быстрее, чем при раздельном использовании.

 

(vi) Операции ввода/вывода << (операция вставки - вывод) и >> (операция извлечения из потока - ввод)

 

Эти операции – операции обмена между объектами cout и cin стандартного потока ввода/вывода (iostream -отдельная тема) и объектами (выражениями) базового типа (правый “операнд”). Знаки ‘<<’ и ‘>>’ “указывают” направление обмена. Допускается “каскадирование” операций. Например, выражение " cout << x << y; " эквивалентно " cout << x; cout << y; ".


Дата добавления: 2015-11-16; просмотров: 35 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Еще о классе памяти| Еще о выражениях

mybiblioteka.su - 2015-2024 год. (0.012 сек.)