Сравнение операторов в разных языках

Обновлен: Ноябрь 2007

В этом разделе приведены операторы для Visual Basic, C++, C#, JScript и Visual FoxPro.

Подробные сведения об операторах в данном языке программирования

См. в разделах

Visual Basic

Сводка операторов

C++

Операторы C++

User-Defined Operators

C#

Операторы C#

JScript

Операторы JScript

Сравнение операторов по языкам

 

Visual Basic

C++

C#

JScript

Visual FoxPro

Аддитивные

 

 

 

 

 

  Сложение

+

+

+

+

+

  Вычитание

-

-

-

-

-

Мультипликативные

 

 

 

 

 

  Умножение

*

*

*

*

*

  Деление

/

/

/

/

/

  Целочисленное деление

\

/1

/1

 

 

  Модульное деление (возвращает только остаток)

Mod (также работает с плавающей запятой)

%

%

% (также работает с плавающей запятой)

%

Mod

  Возведение в степень

^

не определено

не определено

не определено

^ **

Присваивание

 

 

 

 

 

  Присваивание

=

=

=

=

=

  Сложение

+=

+=

+=

+=

+

  Вычитание

-=

-=

-=

-=

-

  Умножение

*=

*=

*=

*=

*

  Деление

/=

/=

/=

/=

/

  Целочисленное деление

\=

не определено

/=1

не определено

не определено

  Объединение строк

&=

+=

+=

+=

+

-

$

  Модульное деление

не определено

%=

%=

%=

%

  Сдвиг влево

<<=

<<=

<<=

<<=

BITLSHIFT( )

  Сдвиг вправо

>>=

>>=

>>=

>>=

BITRSHIFT( )

  Побитовое И

не определено

&=

&=

&=

BITAND( )

  Побитовое исключающее ИЛИ

не определено

^=

^=

^=

BITXOR( )

  Побитовое включающее ИЛИ

не определено

|=

|=

|=

BITOR( )

Объединение нулей

не определено

не определено

??

не определено

не определено

Сравнение

 

 

 

 

 

  Меньше

<

<

<

<

<

  Меньше или равно

<=

<=

<=

<=

<=

  Больше

>

>

>

>

>

  Больше или равно

>=

>=

>=

>=

>=

  Равно

=

==

==

==

=

  Не равно

<>

!=

!=

!=

<>

#

!=

  Сравнение ссылочных переменных

Is

IsNot

не определено

==

==

COMPOBJ( )

  Сравнение ссылочных типов

TypeOf x Is Class1

не определено

x is Class1 (см. также as и typeof)

instanceof

не определено

  Сравнение строк

StrComp( )

(Существуют функции для сравнения и объединения строк)

==

Equals

==

=

  Объединение CString

&

 

+

+

+

  Сокращенное логическое И

AndAlso

&&

&&

&&

AND

.AND.

  Сокращенное логическое ИЛИ

OrElse

||

||

||

не определено

Сдвиг битов

 

 

 

 

 

  Сдвиг влево

<<

<<

<<

<<

не определено

  Сдвиг вправо

>>

>>

>>

>>

>>>

не определено

Разрешение области действия

 

 

 

 

 

  Разрешение области действия

.

MyBase

MyClass

::

.

base

не определено

::

Постфикс2

 

 

 

 

 

  Элемент массива

( )

[ ]

[ ]

[ ]

[ ]

( )

  Вызов функции

( )

( )

( )

( )

( )

  Приведение или преобразование типов

CInt

CDbl

...

CType

(тип)

(тип)

тип( )

не определено

  Выбор члена

.

!

.

->

.

.

.

  Постфиксное приращение

не определено

++

++

++

не определено

  Постфиксное уменьшение

не определено

--

--

--

не определено

Унарный 3

 

 

 

 

 

  Косвенное обращение

не определено

*

* (только небезопасный режим)

не определено

не определено

  Адресация

AddressOf

&

& (только небезопасный режим; см. также fixed)

не определено

не определено

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

Not

!

!

!

!

NOT

.NOT.

  Дополнение до единицы

Not

~

~

~

BITNOT( )

  Префиксное приращение

не определено

++

++

++

не определено

  Префиксное уменьшение

не определено

--

--

--

не определено

  Размер типа

не определено

sizeof

sizeof

не определено

не определено

  Запятая

не определено

,

не определено

,

не определено

Поразрядные

 

 

 

 

 

  Побитовое И

And

&

&

&

BITAND( )

  Побитовое исключающее ИЛИ

Xor

^

^

^

BITXOR( )

  Побитовое включающее ИЛИ

Or

|

|

|

BITOR( )

Логические

 

 

 

 

 

  Логическое И

And

&

&

&&

AND

.AND.

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

Or

|

|

||

OR

.OR.

Условные

 

 

 

 

 

  Троично-условные

IIf( )

?:

?:

?:

не определено

  Двоично- или троично-условные

If( )

Указатель на член

 

 

 

 

 

  Указатель на член

не определено

.* ->

. (только небезопасный режим)

не определено

не определено

Ссылочные

 

 

 

 

 

  Ссылочные

не определено

&

не определено (используйте ссылочные типы)

не определено

@

1. Оператор деления перегружается для обработки как целочисленного деления, так и деления с плавающей запятой, в зависимости от операндов.

2. Постфиксные операторы имеют наивысший порядок применения при вычислении выражений.

3. Унарные операторы располагаются до операнда, и связь устанавливается справа налево.

См. также

Ссылки

Сравнение концепций программирования в разных языках и примеры кода

Сравнение элементов управления и программируемых объектов в разных языках и библиотеках

Другие ресурсы

Языковые эквиваленты

Visual J#