You are on page 1of 5

Anexo:Operadores de C y C++

Anexo:Operadores de C y C++
Esta es una lista de los operadores de los lenguajes de programacin C y C++. Todos los operadores listados
existen en C++. La tercera columna indica si tambin estn presentes en C. Tambin hay que tener en cuenta que C
no permite la sobrecarga de operadores.
Los siguientes operadores son puntos de secuencia en ambos lenguajes (cuando no estn sobrecargados): &&, ||,
?:, y , (el operador coma).
C++ tambin incluye los operadores de conversin de tipos const_cast, static_cast, dynamic_cast y
reinterpret_cast, que no estn listados en la tabla por brevedad. El formato de estos operadores significa que
su nivel de precedencia no es importante.
La mayora de los operadores presentes en C y C++ (con la excepcin del operador coma y el operador flecha)
tambin se encuentran disponibles en los lenguajes de programacin Java, Perl, C# y PHP con la la misma
precedencia, asociatividad y semntica. Con una nica excepcin: la asociatividad del operador ternario en PHP es
de izquierda a derecha.

Tabla
Para los objetivos de esta tabla a, b y c representan valores vlidos (literales, valores de variables o valores de
retorno), nombres de objetos o valores segn el caso.

Operadores de comparacin
Nombre del operador

Sintaxis

Menor que

a < b

a <= b

a > b

Mayor o igual que

a >= b

No igual que

a != b

Igual que

a == b

!a

AND lgico

a && b

OR lgico

a || b

Menor o igual que


Mayor que

Negacin lgica

Sobrecargable

Incluido en C

Operadores a nivel de bit


Nombre del operador

Sintaxis

Desplazamiento a la izquierda

a << b

Asignacin con desplazamiento a la izquierda

a <<= b

Desplazamiento a la derecha

a >> b

Asignacin con desplazamiento a la derecha

a >>= b

~a

a & b

a &= b

a | b

a |= b

Complemento a uno
AND binario
Asignacin con AND binario
OR binario
Asignacin con OR binario

Sobrecargable

Incluido en C

Anexo:Operadores de C y C++

XOR binario
Asignacin con XOR binario

2
a ^ b

a ^= b

Otros operadores
Nombre del operador

Sintaxis

Asignacin bsica

a = b

Llamada a funcin

a()

a[b]

Indireccin (Desreferencia)

*a

Direccin de (Referencia)

&a

a->b

ndice de Array

Miembro de puntero
Miembro

Sobrecargable

a.b

Incluido en C

No
Desreferencia a miembro por puntero

a->*b

No
Desreferencia a miembro por objeto

a.*b

No
Conversin de tipo
Coma
Condicional ternario

No

(tipo) a

a , b

a ? b : c

No
Resolucin de mbito

Puntero a funcin miembro

Tamao de

a::b

No

No

No

No

a::*b

sizeof a
sizeof(tipo)

No
Identificacin de tipo

typeid(a)
typeid(tipo)

No

No

Anexo:Operadores de C y C++

Asignar almacenamiento

new tipo

No
Asignar almacenamiento (Vector)

new tipo[n]

No
Desasignar almacenamiento

delete a

No
Desasignar almacenamiento (Vector)

delete[] a

No
Negacin y asignacin

!!a

SCout<<.h>>

Extensiones del lenguaje


Nombre del operador

Sintaxis

Direccin de la etiqueta

&& etiqueta

Sobrecargable Incluido en C Compilador


S

GCC / G++

GCC / G++

No
Obtener tipo

typeof a
typeof(expr)

No
min y max

a <? b
a >? b

G++

No

No

Precedencia de operadores
La tabla siguiente es una lista que muestra el orden de precedencia y la asociatividad de todos los operadores del
lenguaje de programacin C++. Estn listados de arriba a abajo por orden de precedencia descendente y con la
misma descendencia en la misma celda (puede haber varias filas de operadores en la misma celda). La precedencia
de los operadores no cambia por la sobrecarga.
Una tabla de precedencias, aunque adecuada, no puede resolver todos los detalles. Por ejemplo, el operador ternario
permite expresiones arbitrarias como operador central independientemente de la precedencia del resto de operadores.
As a ? b , c : d es interpretado como a ? (b, c) : d en vez de (a ? b), (c : d). Tambin
hay que tener en cuenta que el resultado sin parntesis de una expresin de conversin en C no puede ser el operando
de sizeof. Por eso sizeof (int) * x es interpretado como (sizeof(int)) * x y no como sizeof
((int) *x).

Anexo:Operadores de C y C++

Operador

Descripcin

Asociatividad

::

Resolucin de mbito (solo C++)

++ -()
[]
.
->
typeid()
const_cast
dynamic_cast
reinterpret_cast
static_cast

Post- incremento y decremento


Llamada a funcin
Elemento de vector
Seleccin de elemento por referencia
Seleccin de elemento con puntero
Informacin de tipo en tiempo de ejecucin (solo C++)
Conversin de tipo (solo C++)
Conversin de tipo (solo C++)
Conversin de tipo (solo C++)
Conversin de tipo (solo C++)

Izquierda a
derecha

++ -+!~
(type)
*
&
sizeof
new new[]
delete delete[]

Pre- incremento y decremento


Suma y resta unitaria
NOT lgico y NOT binario
Conversin de tipo
Indireccin
Direccin de
Tamao de
Asignacin dinmica de memoria (solo C++)
Desasignacin dinmica de memoria (solo C++)

Derecha a
izquierda

.* ->*

Puntero a miembro (solo C++)

*/%

Multiplicacin, divisin y mdulo

Izquierda a
derecha

+-

Suma y resta

<< >>

Operaciones binarias de desplazamiento

< <=
> >=

Operadores relaciones "menor que", "menor o igual que", "mayor que" y "mayor o igual que"

== !=

Operadores relaciones "igual a" y "distinto de"

&

AND binario

XOR binario

OR binario

&&

AND lgico

||

OR lgico

c?t:f

Operador ternario

=
+= -=
*= /= %=
<<= >>=
&= ^= |=

Asignaciones

throw

Operador Throw (lanzamiento de excepciones, solo C++)

Este es el operador de menor prioridad en C. Sirve para separar una coleccin de expresiones, que se
irn evaluando de izquierda a derecha

Derecha a
izquierda

Izquierda a
derecha

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Anexo:Operadores de C y C++ Fuente: http://es.wikipedia.org/w/index.php?oldid=74542781 Contribuyentes: Alejandrocoria, BetoCG, Biasoli, Diegusjaimes, Gelo71, GermanX, Grillitus,
Halfdrag, Jkbw, Jrobertiko, Juan Antonio Cordero, Karras, Kroji, Lucas.lucas.lucas24, Matdrodes, Richy, WikiCholi, 79 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes


Archivo:Yes_check.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Yes_check.svg Licencia: Public Domain Contribuyentes: SVG by (modified by )
Archivo:X mark.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:X_mark.svg Licencia: Public Domain Contribuyentes: User:Gmaxwell

Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

You might also like