Compartir a través de


Comparar los punteros mediante operadores relacionales

Cuando dos punteros a objetos del mismo tipo se comparan, el resultado es determinado por la ubicación de los objetos designados en el espacio de direcciones del programa.Los punteros también se pueden comparar con una expresión constante que se evalúa como 0 o a un puntero de tipo void *.Si una comparación de puntero se crea con un puntero de tipo void *, otro puntero se convierte implícitamente al tipo void *.En la comparación se crea.

Dos punteros de tipos diferentes no pueden compararse a menos que:

  • Un tipo es un tipo de clase derivado de otro tipo.

  • Al menos uno de los punteros explícitamente se convierte (conversión) para escribir void *.(El otro puntero se convierte implícitamente al tipo void * para la conversión.)

Dos punteros del mismo tipo que señalan al mismo objeto se garantiza para comparar el igual.Si dos punteros a miembros no estáticos de un objeto se comparan, se aplican las siguientes reglas:

  • Si el tipo de clase no es una combinación, y si un Access-especificador, como public, protected, o private no separan los dos miembros, el puntero a miembro declarado por último comparará mayor que el puntero a miembro declarado anterior.(Para obtener información sobre Access-especificador, vea la sección syntax en especificadores de Access.)

  • Si un Access-especificadorseparan los dos miembros, los resultados son indefinidos.

  • Si el tipo de clase es una unión, punteros a distintos miembros de datos de la unión comparan el igual.

Si el punto de dos punteros a los elementos de la matriz o elemento uno más allá del final de la matriz, el puntero al objeto con el subíndice más alto compara posterior.Comparación de punteros es válida garantizado cuando los punteros hacen referencia a los objetos de la misma matriz o a la ubicación un último el final de la matriz.

Vea también

Referencia

Expresiones con operadores binarios