Para saber cuál es la salida de este programa, no solo debe analizarse la función invocada, sino también la invocación.

Click aquí para desplegar la solución. 👈
La respuesta es "impar".

✏️ Esto es así debido al preincremento de la variable, ya que el operador ++ colocado delante de la variable hace que primero se ejecute el incremento y luego se resuelva la expresión, que en este caso es una llamada a función. Entonces, a la función se le envía el valor 11, el cual es impar (por eso, al dividirlo por 2 y quedarse con el resto, da 1 y es distinto de 0, lo que hace que la función retorne false).

Solución al desafío



Desafío C++ 👇 Desafío C++ número 2

Click aquí para una versión accesible de la infografía (apta para lectores electrónicos)
 

¿Qué imprime este programa y por qué?

#include <iostream>

bool paridad(int a) {
    return a%2 == 0;
}

int main() {
  int a = 10;
  if (paridad(++a))
    std::cout << "par";
  else
    std::cout << "impar";
}