elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8]
71  Programación / Programación C/C++ / Re: otra manera de escribir *envp++ en: 6 Febrero 2017, 03:41 am
Si miras la tabla de prioridad de operadores de C verás que * y ++ tienen la misma prioridad y se evalúan de derecha a izquierda. Además de esto hay que recordar que el postincremento aumenta la variable después de que esta haya devuelto su valor.

Juntando todo esto tenemos que:
1. *envp++ -> Una expresión para operar
2. envp++ -> Evaluados los operadores que afectan a la variable se toma es postincremento.
3. Como envp++ es un postincremento primero se tomará el valor.
4. *envp -> Se toma el valor de la variable (una dirección de memoria) y se ejecuta el operador *, consiguiendo el valor que guarda dicha dirección.
5. envp++ -> Se termina de ejecutar el operador de postincremento sobre la variable y la hace apuntar a la siguiente posición de memoria.

Gracias por ser el unico en responder amigo, para ver si entendi, todos esos pasos ocurren por el hecho de estar dentro del printf ? , es decir si no tuviese ese printf y declarase en el main char *hola++, ahi simplemente incrementa de una vez la variable hola porque no hay nada mas que hacer ?

y otra cosa, si yo hubiese querido que se incrementase inmediatamente antes de hacer el printf ? como hubiese sido esa notacion ? en vez de poner esto
printf("%s",*envp++);   como seria?
72  Programación / Programación C/C++ / Re: otra manera de escribir *envp++ en: 5 Febrero 2017, 17:46 pm
Código
  1. ... *var++ ...

Es lo mismo que hacer
Código
  1. ... *var ...
  2. ++var;

Gracias, pero tengo una duda, el codigo era:
Citar
printf("%s\n",*envp++);


y tu me dices que es lo mismo que poner
... *var ...
++var;

pero si lo pongo asi tambien funciona :S
... *var ...
++*var;

porque ocurre eso ?
73  Programación / Programación C/C++ / otra manera de escribir *envp++ en: 5 Febrero 2017, 04:28 am
C, hola, de que otra manera puedo escribir esa notacion ? no entiendo ya que se supone que al hacer *envp++ es como si estumiera incrementando adentro del printf la variable :s por que cuando uno tiene por ejemplo int i, y luego hace i++ es lo mismo que tener i = i+1;, pero yo probe poniendo *envp = *envp + 1 y no funciona, tampoco funciona poniendo *envp = *(envp+1) :s



Páginas: 1 2 3 4 5 6 7 [8]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines