Professional Documents
Culture Documents
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
a >= b
No igual que
a != b
Igual que
a == b
!a
AND lgico
a && b
OR lgico
a || b
Negacin lgica
Sobrecargable
Incluido en C
Sintaxis
Desplazamiento a la izquierda
a << b
a <<= b
Desplazamiento a la derecha
a >> b
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
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>>
Sintaxis
Direccin de la etiqueta
&& etiqueta
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
::
++ -()
[]
.
->
typeid()
const_cast
dynamic_cast
reinterpret_cast
static_cast
Izquierda a
derecha
++ -+!~
(type)
*
&
sizeof
new new[]
delete delete[]
Derecha a
izquierda
.* ->*
*/%
Izquierda a
derecha
+-
Suma y resta
<< >>
< <=
> >=
Operadores relaciones "menor que", "menor o igual que", "mayor que" y "mayor o igual que"
== !=
&
AND binario
XOR binario
OR binario
&&
AND lgico
||
OR lgico
c?t:f
Operador ternario
=
+= -=
*= /= %=
<<= >>=
&= ^= |=
Asignaciones
throw
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
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/