SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Mendes en Viernes 30 de Abril de 2010, 17:03

Título: duda
Publicado por: Mendes en Viernes 30 de Abril de 2010, 17:03
int main()
{
int i = 1;

printf (“%d %d %d”, i++, ++i, i++);

}
Ante este programa la salida seria 1 2 1 ó 1 3 4?
Título: Re: duda
Publicado por: Jeysscarr en Viernes 30 de Abril de 2010, 17:36
La salida seria 3 3 1
Título: Re: duda
Publicado por: Mendes en Viernes 30 de Abril de 2010, 18:11
el problema es que tengo este condicionante, entonces no se si el valor de i se actualiza antes o despues:
Assuming that the evaluation of each parameter value passed to a function is always done right prior to the parameter value being pushed to the stack (not every compiler works this way) please indicate what the output of the following would be, draw how the stack would look like after printf(…) is entered and explain why it needs to be that way.

int main()
{
int i = 1;

printf (“%d %d %d”, i++, ++i, i++);

}
Título: Re: duda
Publicado por: Jeysscarr en Viernes 30 de Abril de 2010, 18:55
http://es.answers.yahoo.com/question/in ... 219AAZEp9W (http://es.answers.yahoo.com/question/index?qid=20080317160219AAZEp9W" onclick="window.open(this.href);return false;)
Título: Re: duda
Publicado por: Mendes en Viernes 30 de Abril de 2010, 19:08
Gracias, por el enlace, pero entonces la salida no seria 1,3,3 en vez de 3,3,1?
Título: Re: duda
Publicado por: エリック en Viernes 30 de Abril de 2010, 19:34
Exacto la salida debe de ser 1,3,3. No 3,3,1.
Al menos es lo que debe de parecer pero compilando el programa, me produce 3,3,1.
Aqui les dejo el codigo:
Código: C++
  1.  
  2. #include <iostream>
  3. using std::cout;
  4. using std::endl;
  5. #include <cstdio>
  6. /*Modificado por*/
  7. int main()
  8. {
  9.     int i=1;
  10.     printf("%dn%dn%d",i++,++i,i++);
  11.     /*cout<<i++<<endl;
  12.     cout<<++i<<endl;
  13.     cout<<i++<<endl;*/
  14.     return 0;
  15. }
  16.  
  17.  
  18.  
Alguien podria decir por que imprime al reves, con printf?
Título: Re: duda
Publicado por: NICOLASBLUES en Lunes 10 de Mayo de 2010, 18:37
:S no seria 3 4 1 ???