Ejemplo de alcance

¿Has encontrado un error? ¿Tienes la solución? Deja tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por estudiante con únicamente conocimiento básico del lenguaje, no de programación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
 
void usoLocal( void );       /* prototipo de función */
void usoStaticLocal( void ); /* prototipo de función */
void usoGlobal( void );      /* prototipo de función */ 
int x = 1; /* variable global */
 
/* la función main comienza la ejecución del programa */
int main(){
   int x = 5; /* variable local a main */
 
   printf("x local fuera del alcance de main es %dn", x );
    { /* comienza el nuevo alcance */
      int x = 7; /* variable local con nuevo alcance */
 
      printf( "x local en el alcance interno de main es %dn", x );
   } /* fin de nuevo alcance */ 
   printf( "x local en el alcance externo de main es %dn", x );
 
   usoLocal();       /* usoLocal contiene a automatic local x */
   usoStaticLocal(); /* usoStaticLocal contiene a static local x */   usoGlobal();      /* usoGlobal utiliza global x */
   usoLocal();       /* usoLocal reinicializa automatic local x */
   usoStaticLocal(); /* static local x retiene su valor previo */
   usoGlobal();      /* x global también retiene su valor */
    printf( "nx local en main es %dn", x );
 
   return 0; /* indica terminación exitosa */
 
} /* fin de main */ 
/* usoLocal reinicializa a la variable local x durante cada llamada */
void usoLocal( void )
{
   int x = 25;  /* se inicializa cada vez que se llama usoLocal */ 
   printf( "nx local en usoLocal es %d después de entrar a usoLocaln", x );
   x++;
   printf( "x local en usoLocal es %d antes de salir de usoLocaln", x );
} /* fin de la función usoLocal */ 
/* usoStaticLocal initializa la variable static local x sólo la primera vez
   que se invoca a la función; el valor de x se guarda entre las llamadas a esta
   función */
void usoStaticLocal( void ){
   /* se inicializa sólo la primera vez que se invoca usoStaticLocal */
   static int x = 50;  
 
   printf( "nlocal static x es %d al entrar a usoStaticLocaln", x );   x++;
   printf( "local static x es %d al salir de usoStaticLocaln", x );
} /* fin de la función usoStaticLocal */
 
/* la función usoGlobal modifica la variable global x durante cada llamada */void usoGlobal( void )
{
   printf( "nx global es %d al entrar a usoGlobaln", x );
   x *= 10;
   printf( "x global es %d al salir de usoGlobaln", x );} /* fin de la función usoGlobal */

Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C <code lang="c">Código en C</code>
  • Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.

De esta manera el código coloreas el código.

Deja un comentario

Suscribirse a los comentarios.