Evaluación de la declaración ‘* ptr ++’ en lenguaje C.

Aprender: ¿Cómo la declaración ‘* ptr ++’ se evalúa en el lenguaje de programación C?

La declaración * ptr ++ tiene dos operadores unitarios, * (asterisco) y ++ (operador de incremento), aquí vamos a aprender cómo evaluará esta declaración.

evaluación del operador depende de la asociatividad y precedencia, operadores unitarios ++ de los operadores – + ! ~ * y tener misma precedencia, así que aquí la evolución del operador se basará en la asociatividad de operadores.

asociatividad de los operadores unarios son: derecha a izquierda

Por lo tanto , ++ operador evaluará primero y luego * serán evaluados.

La declaración * ptr ++ será evaluar como ptr ++ y * ptr .

Consideremos el siguiente ejemplo:

#include <stdio.h>
int main()
{
int x=20;
int *ptr=&x;
*ptr++;
printf("%un",*ptr);
return 0;
}

La salida será una valor basura , porque inicialmente ptr está apuntando a la dirección de x pero después de ptr ++ apuntará a la siguiente bloque de memoria (dirección de memoria de x + sizeof ()), que puede tiene algún valor de basura.

Evaluación de la declaración printf ( “% u n”, * ptr ++);

En esta declaración printf ( “% u n”, * ptr ++); ++ es un operador después de la subasta, que habrá evaluar después de la ejecución de printf () comunicado. Por lo tanto, se imprimirá el valor de x (porque inicialmente ptr está apuntando a la dirección de x) después de salir de la declaración ptr ++ evaluará.

Considere el programa dado

#include <stdio.h>
int main()
{
int x=20;
int *ptr=&x;
printf("%un",*ptr++);
return 0;
}

Aquí , salida será 20


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *