Àx ¦s Ãþ §O

l        ¦Û °Ê ÅÜ ¼Æ ( auto variable )

l          ¦Û °Ê ÅÜ ¼Æ ¥u ¦b ¥¦ ©Ò ©w ¸q ªº °Ï ¶ô ¤º ¦³ ®Ä ¡C ¥u ­n ¦b ÅÜ ¼Æ ©Ò ÄÝ ªº °Ï ¶ô µ² ºc ¤º °õ ¦æ ¡A ¸Ó ÅÜ ¼Æ ªº ¸ê ®Æ ¬O ¦³ ®Ä ¦Ó ¥¿ ½T ªº ¡C ·í µ{ ¦¡ °õ ¦æ Â÷ ¶} ¤F ¸Ó °Ï ¶ô ¡A ©Ò ¦³ ©ó °Ï ¶ô ¤º ©w ¸q ªº ¦Û °Ê ÅÜ ¼Æ ´N ¤£ ¦s ¦b ¤F ¡C

l             Example 1:

l           main( )
        {
           int x=1; 
          
inner( );
           printf("%d\n",x);
        }

l                     inner( )
        {
           int x=2;
           printf("%d\n",x);
        }

 

l        ÀR ºA ÅÜ ¼Æ ( static variable)

ÀR ºA ÅÜ ¼Æ »P ¦Û °Ê ÅÜ ¼Æ ¤@ ¼Ë ¡A ¬O ¬Y ¯S ©w ¨ç ¼Æ ¤º ªº °Ï °ì ©Ê ÅÜ ¼Æ ¡A ¦ýÀR ºA ÅÜ ¼Æ ªº ­È ¤£ ·| ¦] ¨ç ¼Æ ªº °õ ¦æ µ² §ô ¦Ó ®ø ¥¢ ¡C

  

      ÀR ºA ÅÜ ¼Æ ªº «Å §i ¦p ¤U ©Ò ¥Ü ¡G

  {
           static int a;
           static int b=12345;
           static char c;
           static float d=13.45;
               .
               .
               .
           } 

 
Example 1:
 
main()
    {
        increment();
        increment();
        increment();
    }          
    
      increment()
     {
        int x=0;
        x=x+1;
     printf("%d\n",x);
        }
 
Result = ?????
Example 2:
 
main()
   {
        increment();
        increment();
        increment();
   }
 
       increment()
   {
     static int x=0;
     x=x+1;
     printf("%d\n",x);
        }
 
Result = ?????
 

l        ¥~ ³¡ ÅÜ ¼Æ ( extern variable)

¥~ ³¡ ÅÜ ¼Æ ©M «e ­± ©Ò ´£ ¨ì ªº ÅÜ ¼Æ ¤£ ¦P ¡C ¥~ ³¡ ÅÜ ¼Æ ªº ¦³ ®Ä ½d ³ò ¤£ ¬O °Ï °ì ©Ê ¡A ¦Ó ¬O ¾ã Åé ©Ê ( global ) ¡A ¥~ ³¡ ÅÜ ¼Æ ©w ¸q ¦b ¥ô ¦ó ¨ç ¼Æ ªº ¥~ ­± ¡A ªí ¥Ü ¥i ¥H ³Q ¨ä ¥L ¨ç ¼Æ ©Ò ¦@ ¥Î ¡C
 

Example 1:

     int x=123;

         main()
        {
           printf("%d\n",x);


        }  

Result =  ?????

Example 2:

    int x=123;

   main()
        {
           int x=321;
           printf("%d\n",x);

        } 

Result =  ?????

 

Example 3:

#include < stdio.h >
#include "extern.c"

         int x=123; 
         main()
        {
           printf("%d\n",x);
           run1();
           run2(); 
         }
         run1()
        {
           printf("%d\n",x);
         }

 

extern.c ¤º ®e ¦p ¤U :

         #include < stdio.h >
         run2()
        {
           extern int x;
           printf("%d\n",x);
         }

 

Result =  ?????

 

/* ======================================== */

/*    µ{¦¡¹ê¨Ò:                                 */

/*    §½³¡(local)©M¾ãÅé(Global) ÅܼƠ             */

/* ======================================== */

#include <stdio.h>

 

int step = 10;                    /* ¾ãÅéÅܼƫŧi */

int count = 5;                    /* ¾ãÅéÅܼƫŧi */

 

/* ---------------------------------------- */

/*  ±NÅܼƭȥ[¤@              */

/* ---------------------------------------- */

void increment()

{

   int step = 0;                    /* §½³¡ÅÜ¼Æ step «Å§i */

 

   step++;                        /* §½³¡Åܼƥ[¤@ */

   count++;                       /* ¾ãÅéÅܼƥ[¤@ */

   printf(" °Æµ{§Ç    %2d      %2d    \n",step, count);

}

 

/* ---------------------------------------- */

/*  ¥Dµ{¦¡                                  */

/* ---------------------------------------- */

void main()

{

   int count = 0;                   /* §½³¡Åܼƫŧi */

 

   count++;                       /* §½³¡Åܼƥ[¤@ */

   step++;                        /* ¾ãÅéÅܼƥ[¤@ */

   printf(" µ{§Ç¦W    STEP    COUNT   \n");

   increment();                   /* °Æµ{§Ç©I¥s */

   printf(" ¥Dµ{§Ç    %2d      %2d    \n",step, count);

}/* ======================================== */

 

 

°õ¦æµ²ªG

 

µ{§Ç¦W

STEP

COUNT

°Æµ{§Ç

1

6

¥Dµ{§Ç

11

1


 

¦^¸ê®Æµ²ºc±Ð¾Ç¤jºõ  ¤W½Òµ{¦¡½d¨Ò  ¤U¤@³æ¤¸