Está en la página 1de 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 .l. 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 Menor que Menor o igual que Mayor que Mayor o igual que No igual que Igual que Negacin lgica AND lgico OR lgico Sintaxis a < b a <= b a > b a >= b a != b a == b !a a && b a || b Sobrecargable Incluido en C S S S S S S S S S S S S S S S S S S

Operadores a nivel de bit


Nombre del operador Desplazamiento a la izquierda Asignacin con desplazamiento a la izquierda Desplazamiento a la derecha Asignacin con desplazamiento a la derecha Complemento a uno AND binario Asignacin con AND binario OR binario Asignacin con OR binario Sintaxis a << b a <<= b a >> b a >>= b ~a a & b a &= b a | b a |= b Sobrecargable Incluido en C S S S S S S S S S S S S S S S S S S

Anexo:Operadores de C y C++

2
a ^ b a ^= b

XOR binario Asignacin con XOR binario

S S

S S

Otros operadores
Nombre del operador Asignacin bsica Llamada a funcin ndice de Array Indireccin (Desreferencia) Direccin de (Referencia) Miembro de puntero Miembro Sintaxis a = b a() a[b] *a &a a->b a.b Sobrecargable Incluido en C S S S S S S S S S S S S S

No Desreferencia a miembro por puntero a->*b S

No Desreferencia a miembro por objeto a.*b

No Conversin de tipo Coma Condicional ternario (tipo) a a , b a ? b : c S S

No S S S

No Resolucin de mbito a::b

No Puntero a funcin miembro a::*b

No

No Tamao de sizeof a sizeof(tipo)

No S

No Identificacin de tipo typeid(a) typeid(tipo)

No

No

Anexo:Operadores de C y C++

3
new tipo

Asignar almacenamiento

No Asignar almacenamiento (Vector) new tipo[n] S

No Desasignar almacenamiento delete a S

No Desasignar almacenamiento (Vector) delete[] a S

No Negacin y asignacin !!a S S

Extensiones del lenguaje


Nombre del operador Direccin de la etiqueta Sintaxis && etiqueta Sobrecargable Incluido en C Compilador S GCC / G++

No Obtener tipo typeof a typeof(expr) S GCC / G++

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 :: ++ -() [] . -> typeid() const_cast dynamic_cast reinterpret_cast static_cast ++ -+!~ (type) * & sizeof new new[] delete delete[] .* ->* */% +<< >> < <= > >= == != & ^ | && || c?t:f = += -= *= /= %= <<= >>= &= ^= |= throw ,

Descripcin Resolucin de mbito (solo C++) 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++) 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++) Puntero a miembro (solo C++) Multiplicacin, divisin y mdulo Suma y resta Operaciones binarias de desplazamiento Operadores relaciones "menor que", "menor o igual que", "mayor que" y "mayor o igual que"

Asociatividad Izquierda a derecha

Derecha a izquierda

Izquierda a derecha

Operadores relaciones "igual a" y "distinto de" AND binario XOR binario OR binario AND lgico OR lgico Operador ternario Asignaciones Derecha a izquierda

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 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=73125100 Contribuyentes: Alejandrocoria, BetoCG, Biasoli, Diegusjaimes, Gelo71, GermanX, Grillitus, Halfdrag, Jkbw, Jrobertiko, Juan Antonio Cordero, Karras, Kroji, Lucas.lucas.lucas24, Matdrodes, Richy, WikiCholi, 76 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/