Orden de operandos para operadores lógicos

El orden de los operandos de los operadores lógicos &&, || son importantes en C/C++.

En matemáticas, las operaciones lógicas AND, OR, etc… son conmutativas. El resultado no cambiará incluso si intercambiamos RHS y LHS del operador.

En C/C++ (también puede estar en otros lenguajes) aunque estos operadores son conmutativos, su orden es crítico. Por ejemplo, vea el siguiente código,

// Traverse every alternative node
while( pTemp && pTemp->Next )
{
   // Jump over to next node
   pTemp = pTemp->Next->Next;
}

La primera parte pTemp será evaluada contra NULL y seguida por pTemp->Next . Si pTemp->Next se coloca primero, se quitará la referencia al puntero pTemp y habrá un error de tiempo de ejecución cuando pTemp sea NULL.

Es obligatorio seguir el orden. De hecho, ayuda a generar código eficiente. Cuando el puntero pTemp es NULL, la segunda parte no se evaluará ya que se garantiza que el resultado de la expresión AND (&&) es 0.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *