Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65438
ТЕХНОЛОГИИ ДОСТ... 62417
Имитационное мо... 58032
Реклама
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

Пользователей: 13,089
новичок: duskob67
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы обрабатывающего участка цеха в GPSS
База данных склада на Delphi + Схема БД
Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Выражения: операторы языка C++
В этой статье блога описываются операторы языка C++. Мы используем обозначения, которые считаем мнемоническими, например: m — для имени члена; T — для имени типа; p — для выражения, создающего указатель; x — для выражения; v — для выражения lvalue; lst — для списка аргументов.

Также вам может показаться, что такая тема как

http://www.complat.ru/rus/services/line
никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт complat.ru
Тема провести интернет там представлена весьма широко.


Типы результатов арифметических операций определяются обычными арифметическими преобразованиями. Описания, приведенные тут, касаются только встроенных операторов, а не операторов, которые программист может определить самостоятельно, хотя, определяя свои собственные операторы, следует придерживаться семантических правил, установленных для встроенных операторов.
Разрешение области видимости
N :: m m находится в пространстве имен N; N — имя пространства имен или класса
:: m m находится в глобальном пространстве имен
Обратите внимание на то, что члены могут быть сами вложенными, поэтому можем получить такие выражения, как N::C::m).
Постфиксные выражения
x.m
p->m
p[x]
f(lst)
T(lst)
v++
typeid(x)
Доступ к члену класса; x должен быть объектом класса Доступ к члену класса; p должен быть указателем на объект класса; эквивалентно (*p).m Индексирование; эквивалентно *(p+x)
Вызов функции; вызов функции f со списком аргументов lst Создание: создание объекта T со списком аргументов lst (Постфиксная) инкрементация; значение v++ равно значению v до инкрементации
(Постфиксная) декрементация; значение v— равно значению v до инкрементации
Идентификация типа объекта x во время выполнения программы
Идентификация типа T во время выполнения программы Приведение объекта x к типу T с проверкой во время выполнения программы
Приведение объекта x к типу T с проверкой во время компиляции программы
Непроверяемое преобразование, которое сводится к добавлению или удалению спецификатора const у типа объекта x, чтобы получить тип T
reinterpret_cast(x) Непроверяемое приведение объекта x к типу T с помощью
иной интерпретации битовой комбинации объекта x
Оператор typeid и его применения не описаны в этой книге; его детали можно найти в более сложных учебниках. Обратите внимание на то, что операторы приведения не модифицируют свой аргумент. Вместо этого они создают результат своего типа, который каким-то образом соответствует значению аргумента
Унарные выражения
typeid(T)
dynamic_cast(x) static_cast(x) const cast(x)
sizeof(T)
sizeof(x)
Размер типа T в байтах
Размер типа, к которому относится объект x (в байтах)
Окончание таблицы
Унарные выражения
++v (Префиксная) инкрементация; эквивалентно v+=1
—v (Префиксная) декрементация; эквивалентно v-=1
~x Дополнение к x; побитовая операция
!x Отрицание x; возвращает true или false
&v Адрес переменной v
*P Содержание объекта, на который ссылается указатель p
new T Создает объект типа T в свободной памяти
new T(lst) Создает объект типа T в свободной памяти и инициализирует его
объектом lst
new(lst) T Создает объект типа T в области памяти, заданной аргументом lst
new(lst) T(lst2) delete p Создает объект типа T в области памяти, заданной аргументом lst,
и инициализирует его аргументом lst2
Удаляет объект, на который ссылается указатель p
delete[] p Удаляет массив объектов, на который ссылается указатель p
(T)x Приведение в стиле языка C; приведение объекта x к типу T
Объекты, на которые ссылается указатель p в инструкциях delete p и delete[] p, должны быть размещены в памяти с помощью оператора new. Следует подчеркнуть, что выражение (T)x является менее конкретным и, следовательно, более уязвимым для ошибок, чем более конкретные операторы приведения.
Выбор члена класса
x.*ptm Член объекта x, определенный указателем на член класса ptm
p->*ptm Член *p, идентифицированный указателем на член класса ptm
Эти инструкции в книге не рассматриваются; обратитесь к более сложным учебникам.
Мультипликативные операторы
x*y Умножение x на y
x/y Деление x на y
x%y Деление по модулю (остаток от деления) x на y (не для типов с плавающей точкой)
Если y==0, то результат выражений x/y и x%y не определен. Если переменная x или y является отрицательной, то результат выражения x%y является отрицательным.
Аддитивные операторы
x+y Сложение x и y
x-y Вычитание y из x
Операторы сдвига
x< x>>y Сдвигает биты x вправо на y позиций
Для встроенных типов операторы >> и << означают сдвиг битов. Если левым операндом является объект класса iostream, то эти операторы используются для ввода и вывода.
x x<=y x меньше или равно y
x>y x больше y
x>=y x больше или равно y
Результатом оператора сравнения является значение типа bool.
Операторы равенства
x==y x равно y; возвращает значение типа bool
x!=y x не равно y
Обратите внимание на то, что x!=y эквивалентно !(x==y). Результат оператора равенства имеет тип bool.
Побитовое “и”
x&y побитовое “и” чисел x и y
Оператор & (как и операторы л, |, ~, >> и <<) возвращает комбинацию битов. Например, если переменные a и b имеют тип unsigned char, то результат выражения a&b имеет тип unsigned char, в котором каждый бит является результатом применения оператора & к соответствующим битам переменных a и b.
Побитовое исключительное “или” (хог)
x^y Побитовое исключительное “или” переменных x и y
Побитовое “или”
x|y Побитовое “или” переменных x и y
Логическое “и”
x&&y Логическое “и”; возвращает значения true и false; вычисляет значение
y, только если x имеет значение true
A.5. ВЫРАЖЕНИЯ
1097
Логическое “или”
x||y Логическое “или”; возвращает значения true и false; вычисляет значение
у, только если x имеет значение false
Условное выражение
x?y:z Если x равно true, то результат равен у; иначе — равен z
Рассмотрим пример. template T& max(T& a, T& b) { return (a>b)?a:b; }
Присваивание
v=x Присваивает x переменной v; результат равен v
v*=x Аналог v=v*(x)
v/=x Аналог v=v/(x)
v%=x Аналог v=v%(x)
v+=x Аналог v=v+(x)
v-=x Аналог v=v-(x)
v>>=x Аналог v=v>>(x)
v<<=x Аналог v=v<<(x)
v&=x Аналог v=v&(x)
A
v =x Аналог v=v^(x)
v|=x Аналог v=v|(x)
Фраза “аналог v=v*(x) ” означает, что значение выражения v*=x совпадает со значением выражения v=v*(x), за исключением того, что значение v вычисляется только один раз. Например, выражение v[++i]*=7+3 означает (++i, v[i]=v[i]*(7+3)), а не (v[++i]=v[++i]*(7+3)) (которое может быть неопределенным;.
Выражение throw
throw x Генерирует значение x
Результат выражения throw имеет тип void.
Выражение “запятая”
x,y
Выполняет инструкцию x, а затем у. Результатом является результат инструкции у
Каждая таблица содержит операторы, имеющие одинаковый приоритет. Операторы в более высоко расположенных таблицах имеют более высокий приоритет по сравнению с операторами, расположенными ниже. Например, выражение a+b*c означает a+(b*c), а не (a+b)*c, поскольку оператор * имеет более высокий приоритет по сравнению с оператором +. Аналогично, выражение *p++ означает *(p++), а не (*p)++. Унарные операторы и операторы присваивания являются правоассоциативными (right-associative); все остальные — левоассоциативными. Например, выражение a=b=c означает a=(b=c), а выражение a+b+c означает (a+b)+c.

Lvalue — это объект, допускающий модификацию. Очевидно, что объект lvalue, имеющий спецификатор const, защищен от модификации системой типов и имеет адрес. Противоположностью выражения lvalue является выражение rvalue, т. е. выражение, идентифицирующее нечто, что не может быть модифицировано или не имеет адреса, например, значение, возвращаемое функцией (&f(x) — ошибка, поскольку значение, возвращаемое функцией f(x), является значением rvalue).
Опубликовал katy May 01 2015 15:02:29 · 0 Комментариев · 1496 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Сложный калькулятор
EditNew
Пример работы с р...
WebReg v1.3
База предприятий ...
RxLIB
Pass [Исходник на...
EMS QuickExport S...
Меню проводника в...
Развивающийся фла...
Assistant
Голосование для ...
Tetris 2002
Фильтры изображений
Adapter (пример D...
Философия C++. Пр...
C++ Стандартная б...
Формирование отче...
Игра змейка
Программирование ...

Топ загрузок
Приложение Клие... 100474
Delphi 7 Enterp... 87523
Converter AMR<-... 20081
GPSS World Stud... 13130
Borland C++Buil... 11948
Borland Delphi ... 8639
Turbo Pascal fo... 7042
Visual Studio 2... 5002
Калькулятор [Ис... 4863
FreeSMS v1.3.1 3544
Случайные статьи
Программный интерфейс
Разборка Mac на части
Пример стека как с...
Язык С: инструкции
Автоматическое р...
Чтобы заменить дел...
Лента
Аксессуары для ноу...
Некоторые выводы в...
ПРОСТРАНСТВО, ВРЕМ...
Чтобы найти номер ...
РАЗВИТИЕ ПРЕДСТАВЛ...
Создание системы к...
Программа Stufflt ...
Объекты, свойства ...
Выделение трех объ...
]2ошСв edsfes
Цена халявы, или т...
Использование XHTM...
Восприятие и замет...
Установка голубого...
Acompli и почта
Игровые автоматы. ...
КОНЪЮНКЦИЯ ЦЕЛЕВЫХ...
Одномерные массивы
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?