Código
#include <iostream> int Mostrar(const char *lpszMensaje); int main() { //(*(int *)(&(std::cout << "Izquierda->"))) + (*(int *)(&(std::cout << "Centro->"))) * (*(int *)(&(std::cout << "Derecha->"))); Mostrar("Izquierda->") + Mostrar("Centro->") * Mostrar("Derecha->"); std::cin.get(); return 0; } inline int Mostrar(const char *lpszMensaje) { std::cout << lpszMensaje; return 0; }
Lo que yo me esperaba es que se ejecutara Mostrar("Centro->") * Mostrar("Derecha->"), y después Mostrar("Izquierda->") más el resultado anterior, ya que el operador * tiene preferencia sobre el +, pero la salida del programa ha sido la siguiente:
Código:
Izquierda->Centro->Derecha->
Es decir, que ¿en teoría se habría ejecutado primero la suma, y después el producto? No lo entiendo... Si alguien me lo pudiera explicar... Gracias!
PD.: En el compilador he puesto que no optimice el código. Comando usado:
Código:
g++ -o main.exe main.cpp