Навигация
Главная
Поиск
Форум
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
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 64931
Модуль Forms 64732
Пример работы с... 62923
ТЕХНОЛОГИИ ДОСТ... 61436
Имитационное мо... 57278
Реклама
Сейчас на сайте
Гостей: 10
На сайте нет зарегистрированных пользователей

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

Обратное размещение элементов ЭВС на Delphi + Пояснительная записка
Расчет мер близости на отношениях на Delphi + Пояснительная записка
База данных - словарь терминов на Delphi + Пояснительная записка

Реклама



Подписывайся на 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 Комментариев · 1454 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
PHP, MySQL и Drea...
Игра PackMan
Midi
Советы по Delphi
Простой пример ка...
Delphi. Разработк...
SearchAndReplace
Платформа програм...
Алгоритм трассиро...
Архив значков
ATComponents
Самоучитель PHP 4
Калькулятор [Исхо...
NotePad Pro [Исхо...
Strawberry Prolog...
SysInfo [Исходник...
IIIDTrans
ADVstatusbar
Модифицированная ...
EditNew

Топ загрузок
Приложение Клие... 100461
Delphi 7 Enterp... 86550
Converter AMR<-... 20075
GPSS World Stud... 12608
Borland C++Buil... 11733
Borland Delphi ... 8550
Turbo Pascal fo... 7036
Visual Studio 2... 4997
Калькулятор [Ис... 4756
FreeSMS v1.3.1 3540
Случайные статьи
Game Boy Advance, ...
По умолчанию в ред...
Глава 20. Адапт...
Операции над матри...
Каждый DNS-сервер ...
Воспроизведение зв...
Метод Фурье
Колесо трактор
Каковы шансы у про...
Прочтите десятично...
Процедура SetTextS...
10.5. Принципы
Я - Zend Certified...
Бюджетные цветные ...
Просмотр техническ...
Исследование свойс...
Технология маркиро...
Традиционные и гиб...
Работа с директори...
Сохранение и чтени...
Программа на языке...
Наследование
Потоки ввода-вывода
Internet Explorer
Версия XHTML 1.0 S...
Статистика



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


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