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