Red de conocimiento informático - Conocimiento sistemático - Pídale a un experto que le explique el siguiente procedimiento. ¿Por qué la salida es AGAAGAG?

Pídale a un experto que le explique el siguiente procedimiento. ¿Por qué la salida es AGAAGAG?

/*

Inicialmente, p1 apunta al primer carácter de la cadena,

p2 apunta al último carácter de la cadena,

El bucle while realiza las siguientes operaciones

s guarda el carácter señalado por p1

p1 apunta al siguiente carácter

Asigna el carácter señalado por p2 a la memoria apuntada por p1

p>

p2 apunta al carácter anterior

Asigne el carácter guardado por s a la memoria apuntada por p2

En de esta manera se obtiene el resultado final

Puedes agregar salida al bucle para ver los detalles de todo el proceso

*/

#include< stdio.h>

#include< string.h>

void?fun(char?*w,int?m)

{?

char?s,*p1,*p2

p1=w;

p2=w+m-1;

int?i =1;

mientras(p1< p2)

{?

printf("%d.?p1:%d,p2:%d\n ",i,p1,p2);

printf("*p1:%c,*p2:%c\n",*p1,*p2);

s= *p1++;

*p1=* p2--;?

*p2=s;

printf("p1:%d,p2:%d \n",p1,p2);

printf("*p1:%c,*p2:%c\n",*p1,*p2);

printf( "s:%c\n",s);

printf("a:%s\n",w);

printf("\n");

i++;

}

}

void?main()

{?

char?a[]="ABCDEFG";

fun(a,strlen(a));

puts(a);

}

Por favor adopta