¤@. Ãö ©ó C ( C »y ¨¥ ªº ®æ ¦¡ )
1-1. ¤° »ò ¬O C »y ¨¥ ?

C »y ¨¥ ¬O 1972 ¦~ ¥ª ¥k ¥Ñ Dennis Ritchie ¤@ Ó ¤H ¦b ¨© º¸ ¹ê Åç «Ç ( Â² ºÙ AT&T ) ³] p ¶} µo ¥X ¨Ó ªº ¹q ¸£ µ{ ¦¡ »y ¨¥ . ¥L ·í ®É »P Ken Thompson ¨â ¤H ¦@ ¦P t ³d UNIX §@ ·~ ¨t ²Î ªº µo ®i , ¦Ó UNIX §@ ·~ ¨t ²Î ( ¬O ¤@ Ó ¦h ¤H ¦h ¤u ªº §@ ·~ ¨t ²Î ) »P ¤j ³¡ ¥÷ ªº ¤½ ¥Î µ{ ¦¡ ¤Î C ¥» ¨ ªº ½s Ä¶ ¾¹ ( Compiler ) µ´ ¤j ³¡ ¥÷ ¬O ¥Ñ C ³] p ¥X ¨Ó ªº , ¥BC ªº ¥i Äâ ©Ê ( Portability ) ·¥ ¨Î , ¦p ªG ¶· ¸ó ¥ ¥x °õ ¦æ , ¥u »Ý × §ï ³¡ ¥÷ µ{ ¦¡ ½X ( ¬Æ ¦Ü ¤£ »Ý × §ï ) §Y ¥i °õ ¦æ . ®µ ¨ä ±j ¤j ªº µ{ ¦¡ ¯à ¤O , ¬Û «H C »y ¨¥ ¬O È ±o ¾Ç ²ß ªº . ¥H ¤U ¬O C ¤§ µo ®i ªu ² .

¦è ¤¸ 1960 ¦~
Algo 60 »y ¨¥ ( International Committe )

¦è ¤¸ 1963 ¦~
CPL »y ¨¥ ( ¼C ¾ô »P Û ´° ¤j ¾Ç )

¦è ¤¸ 1966 ¦~
BCPL »y ¨¥ ¤U ( ¼C¾ô¤j¾Ç Martin Richards )

¦è ¤¸ 1970 ¦~
B »y ¨¥ ( AT&T Ken Thompson )

¦è ¤¸ 1972 ¦~
C »y ¨¥ ( AT&T Dennis Ritchie )

1-2. ¦b ¾Ç C ¤§ «e ¥ý ¨Ó ¤F ¸Ñ ¦ó ¿× ½s Ä¶ ¾¹ (COMPILER) »P ª½ Ä¶ ¾¹ (INTERPRETER )?

( 1 ) ½s Ä¶ ¾¹ ´N ¬O ¤@ ºØ ¯à ±µ ¨ü °ª ¶¥ »y ¨¥ µ{ ¦¡ ·í §@ ¿é ¤J , ¦Ó ²£ ¥Í µ¥ ®Ä ªº ¾÷ ±ñ »y ¨¥ ¬° ¿é ¥X ªº ³n Åé µ{ ¦¡ , ¨Ò ¦p Turbo C , C + + , Borland C + + , Microsoft C , Visual C++ etc .( ¦p ¹Ï ¤@ ) .
( 2 ) ½s Ä¶ ¾¹ °ò ¥» ¤W ¥Ñ »y ¨¥ ¤À ªR ( Lexical Analysis ) , »y ªk ¤À ªR ( Syntax Analysis ) , ½s ½X ²£ ¥Í ¾¹ ( Code Generator ) , ²Å ¸¹ ªí ( Symbol Table ) ©Ò ²Õ ¦¨ .
( 3 ) ª½ Ä¶ ¾¹ ¬O ·í ¥¦ Â½ Ä¶ ¤@ Ó °ª ¶¥ »y ¨¥ ( ¨Ò ¦p C ) ªº ³¯ z ´N °õ ¦æ ³o Ó ³¯ z , Â½ Ä¶ »P °õ ¦æ ¬O ¥æ ¿ù ªº °õ ¦æ , ¨Ã ¤£ ²£ ¥Í ¥Ø ªº µ{ ¦¡ , ¨Ò ¦p RUN C ( ¦p ¹Ï ¤G ).
( 4 ) ³s µ² ¾¹ ( LINKER ) ªº ¥Î ³~ ¬O ±N ¬Û Ãö ªº µ{ ¦¡ ¥Ø ªº ½X ( ¥Ñ ½s Ä¶ ¾¹ ©Ò ²£ ¥Í ¤§ OBJ ÀÉ ) »P ®w ¦s ¨ç ¼Æ ³s µ² °_ ¨Ó .

ì©lµ{¦¡ --> ¸g¥Ñ½sÄ¶¾¹ --> ÅÜ¦¨¥ØªºÀÉ --> ¸g¥Ñ³sµ²¾¹ --> ÅÜ¦¨°õ¦æÀÉ
SOURCE.C --> COMPILER --> SOURCE.OBJ --> LINKER --> SOURCE.EXE

ì©lµ{¦¡ --> ¸g¥Ñª½Ä¶¾¹ --> °õ¦æµ²ªG
SOURCE.C --> INTERPRETER --> RESULT

( 5 ) §A ©Ò ¼g ªº C »y ¨¥ µ{ ¦¡ »Ý ¸g ¥Ñ ½s Ä¶ ¾¹ ©Î ª½ Ä¶ ¾¹ ¨Ì ¤W z ¨B ÆJ ªº ¹B §@ ¤~ ±o ¨ì °õ ¦æ µ² ªG .

1-3. ±q µ{ ¦¡ ¼g §@ ªº ¨¤ «× ¨Ó ¬Ý C »y ¨¥ ªº ¯S ©Ê .

( 1 ) ¥i ¥H ¹³ ²Õ ¦X »y ¨¥ ¤@ ¼Ë ¶i ¦æ µw Åé ¤§ ª½ ±µ ¦s ¨ú .
( 2 ) ¬° »y ªk ³W «h Â² ³æ , ²M ·¡ , ®e ©ö ¨Ï ¥Î ¤§ µ² ºc ¤Æ »y ¨¥ .
( 3 ) ¥² n ®É ¥i ¥H »P ²Õ ¦X »y ¨¥ ³s µ² .
( 4 ) ¥i Äâ ©Ê ( Portability ) ·¥ ¨Î , ¸ó ¥ ¥x ªº ¯à ¤O ±j .

1-4. ¼Ð ·Ç C »y ¨¥ ®æ ¦¡ .

#include < stdio.h > ----> «e¸m³B²z¾¹
main( ) ----> ¥Dµ{¦¡
{
int i=0 ; /* ÅÜ ¼Æ «Å §i */
i=i+1; /* ºâ ¼Æ ¹B ºâ */----> µ{¦¡¥DÅé
printf("i=%d\n",i) ; /* ¿é ¥X ¦Ü ¿Ã ¹õ */
}
subroutine( ) ----> °Æµ{¦¡
..
..
subroutine( ) ----> °Æµ{¦¡
..
..

³Æ µù :
( 1 ) { »P } ²Å ¸¹ ªí ¥Ü µ{ ¦¡ ©Î ±Ô z ªº ¶} ©l »P µ² §ô .
( 2 ) ; ²Å ¸¹ ªí ¥Ü ÅÜ ¼Æ «Å §i ©Î «ü ¥O ±Ô z ªº ¬q ¸¨ .
( 3 ) / * »P * / ²Å ¸¹ ªí ¥Ü µ{ ¦¡ ¤º µù ¸Ñ .
( 4 ) ¥D µ{ ¦¡ ¬° C µ{ ¦¡ °õ ¦æ ¤§ ¶i ¤J ÂI .
( 5 ) ¤W z ©Ò ´£ ¨ì ¤§ °Æ µ{ ¦¡ ¤£ ¤@ ©w ¦s ¦b ©ó ¾ã Ó µ{ ¦¡ ¤¤ ( °£ «D ¦³ »Ý n ) , ¦ý ¬O ¥D µ{ ¦¡ ¥² »Ý ¦s ¦b .

¤G. °ò ¥» ¸ê ®Æ «¬ ºA
2-1. ÅÜ ¼Æ ©R ¦W ªº ì «h ?

( 1 ) ¶} ÀY ¥² ¶· ¬O ¦r ¥À ( letter ) ©Î ©³ ½u ( underscore ) .
Example : a , b , count , test_var , _date , ..... etc.
( 2 ) ¦r ¤¸ ªº ¤j ¼g ¤p ¼g ©Ò ¥N ªí ªº ·N ¸q ¤£ ¦P .
Example : a , B , A , TEST_VAR , test_var , ..... etc.
( 3 ) ¤£ ±o ¨Ï ¥Î Ãö Áä ¦r ( keyword ) .
Example :

asm , double , goto , static , auto , else , if , struct , sizeof
break , entry , int , switch , case , enum , long , typedef
char , extern , register , union , contiue , float , return
unsigned , default , for , short , void , do , fortran , while

2-2. ÅÜ ¼Æ ªº ¸ê ®Æ «¬ ºA ºØ Ãþ :

Ãþ §O ²Å¸¹¦ì¤¸ ¦ì¤¸ªø(bits) ªí ¥Ü ªk ¼Æ È ½d ³ò
¾ã ¼Æ ¦³ 16 int(short) -32768->32767
32 long -2147483648->2147483647
µL 16 unsigned int 0->65535
16 unsigned short 0->65535
32 unsigned long 0->4294967295
¯BÂI¼Æ ¦³ 32 float 10^-38->10^38
64 double 10^-308-->10^308
¦r¤¸ µL 8 char 0->255

³Æ µù :
( 1 ) float ªº ¤Q ¶i ¦ì ¼Æ ºë ½T «× ³Ì ¤j ¬° ¤C ¦ì ¼Æ .
( 2 ) double ªº ¤Q ¶i ¦ì ¼Æ ºë ½T «× ³Ì ¤j ¬° ¤Q¤ ¦ì ¼Æ .

2-3. ÅÜ ¼Æ ªº «Å §i ¤è ªk :

( 1 ) ¾ã ¼Æ ³¡ ¥÷ :

{
int a;
int b,c=45;
int d=10L; /*¦¹¦r¥ÀL(¤j¤p¼g§¡¥i)ªí¥Ü±NdÂà´«¦¨long¨Ó³B²z*/
short int name;
short test_var;
long int var_name;
long _variable;
unsigned int argu1=30;
.
.
.
}

( 2 ) ¯B ÂI ¼Æ ³¡ ¥÷ :

{
float a=12.3456; /*³æºë·Ç«×*/
float b=0.12345e2;
double score=4.987654322e-7; /*Âùºë·Ç«×*/
.
.
.
}

( 3 ) ¦r ¤¸ ³¡ ¥÷ :

{
char c='c';
char bell=7; /*7¬°ASCII¤§ÅTÁn¦r¤¸*/
.
.
.
}

³Æ µù :
( 1 ) C »y ¨¥ ¤¤ ÅÜ ¼Æ ¶· ¦b µ{ ¦¡ ³Ì ¤W ºÝ «Å §i , ¦Ó C++ ¤£ ¦b ¦¹ ¨î.

¤T. Àx ¦s Ãþ §O

3-1. ¦Û °Ê ÅÜ ¼Æ ( auto variable )

¦Û °Ê ÅÜ ¼Æ ªº «Å §i ¦p ¤U ©Ò ¥Ü ¡G

{
auto int a;
auto int b=12345;
auto char c;
auto float d=123.45;
.
.
.
}

¦Û °Ê ÅÜ ¼Æ ¥u ¦b ¥¦ ©Ò ©w ¸q ªº °Ï ¶ô ¤º ¦³ ®Ä ¡C ¥u n ¦b ÅÜ ¼Æ ©Ò ÄÝ ªº °Ï ¶ô µ² ºc ¤º °õ ¦æ ¡A ¸Ó ÅÜ ¼Æ ªº ¸ê ®Æ ¬O ¦³ ®Ä ¦Ó ¥¿ ½T ªº ¡C ·í µ{ ¦¡ °õ ¦æ Â÷ ¶} ¤F ¸Ó °Ï ¶ô ¡A ©Ò ¦³ ©ó °Ï ¶ô ¤º ©w ¸q ªº ¦Û °Ê ÅÜ ¼Æ ´N ¤£ ¦s ¦b ¤F ¡C ¦Û °Ê ÅÜ ¼Æ «Å §i ®É ©Ò ¨Ï ¥Î ªº Ãö Áä ¦r auto ¦b ¹ê »Ú ªº ¹B ¥Î ¤W ¥i ¬Ù ²¤ ¤£ ¼g ¡C ½Ð °Ñ ¦Ò example 3-1-1¡C

example 3-1-1:

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

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

result :
2
1

3-2. ¼È¦s¾¹ÅÜ¼Æ ( register variable)

n ©w ¸q ¼È ¦s ¾¹ ÅÜ ¼Æ ¥² ¶· ¨Ï ¥Î Ãö Áä ¦r register ¡C¦¹ Ãþ ÅÜ ¼Æ ªº ¨Ï ¥Î »P ¦Û °Ê ÅÜ ¼Æ ¬Û ¦ü¡A½Ð °Ñ ¦Ò example 3-2-1¡C
§Ú Ì ³£ ª¾ ¹D¡A¹q ¸£ ¤º ³¡ ªº ¼È ¦s ¾¹ ¦b ¸ê ®Æ ¦s ¨ú ©Î ¬O ¹B ºâ ªº ³t «× ³£ ¤ñ °O ¾Ð Åé §Ö «Ü ¦h ¡A©Ò ¥H ¦p ªG ¼È ¦s ¾¹ ÅÜ ¼Æ «Å §i ¦¨ ¥\ ¡A«h ¦³ §U ©ó µ{ ¦¡ ¾ã Åé ®Ä ²v ¤§ ´£ ¤É ¡C¦ý ¬O ¼È ¦s ¾¹ ÅÜ ¼Æ ¤§ «Å §i ¬O ¤@ ºØ ½Ð ¨D ¦Ó «D ©R ¥O ¡A©Ò ¥H ¼È ¦s ¾¹ ÅÜ ¼Æ Y «Å §i ¥¢ ±Ñ ¡AC compiler ¦Û °Ê ±N ¦¹ ÅÜ ¼Æ ·í §@ ¦Û °Ê ÅÜ ¼Æ ¨Ó ¨Ï ¥Î¡C

example 3-2-1:

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

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

result :
2
1

3-3. ÀR ºA ÅÜ ¼Æ ( static variable)

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

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

ÀR ºA ÅÜ ¼Æ »P ¦Û °Ê ÅÜ ¼Æ ¤@ ¼Ë ¡A ¬O ¬Y ¯S ©w ¨ç ¼Æ ¤º ªº °Ï °ì ©Ê ÅÜ ¼Æ ¡A ¦ý »P ¦Û °Ê ÅÜ ¼Æ ¤£ ¦P ªº ¬O ÀR ºA ÅÜ ¼Æ ªº È ¤£ ·| ¦] ¨ç ¼Æ ªº °õ ¦æ µ² §ô ¦Ó ®ø ¥¢ ¡A ©Ò ¥H ¦p ªG µ{ ¦¡ ¦A ¦^ ¨ì ¨ç ¼Æ ¤º °õ ¦æ ®É ¡A ¤W ¤@ ¦¸ °õ ¦æ µ² ªG ÁÙ ¬O ¦s ¦b ÅÜ ¼Æ ¤º ¡C ½Ð °Ñ ¦Ò example 3-3-1¡A3-3-2¡C

example 3-3-1:

main()
{
increment();
increment();
increment();
}

increment()
{
int x=0;
x=x+1;
printf("%d\n",x);
}

result:
1
1
1

example 3-3-2:

main()
{
increment();
increment();
increment();
}

increment()
{
static int x=0;
x=x+1;
printf("%d\n",x);
}

result:
1
2
3

3-4. ¥~ ³¡ ÅÜ ¼Æ ( extern variable)

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

example 3-4-1:

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

result:
123

example 3-4-2:

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

result:
321

example 3-4-3:

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

result:
123
123
123

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

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

ps. ¦b ¦¹ ¸É ¥R ¤@ ÂI ¡F ¦p ªG «Å §i ¦Û °Ê ÅÜ ¼Æ ¡B ¼È ¦s ¾¹ ÅÜ ¼Æ ¡B ÀR ºA ÅÜ ¼Æ ©Î ¥~ ³¡ ÅÜ ¼Æ ®É ¥¼ ³] ©w ªì ©l È ¡A «h C compiler ±N ·| ³] ©w ¬° 0 ¡C

¥|. °ò ¥» ¿é ¤J / ¿é ¥X ¨ç ¼Æ

4-1. ®æ ¦¡ ¤Æ ¿é ¥X ¨ç ¼Æ printf( )

printf( ) ¬O ¥Î ¨Ó ±N ¸ê ®Æ ®æ ¦¡ ¤Æ ªº ¿é ¥X ¦Ü ¿Ã ¹õ ¡A ¨ä »y ªk ¦p ¤U ¡G

printf(format_string,arg1,arg2,...argn);

¥Ñ ¤U z example 4-1-1 ¨Ò ¤l ¤¤ %d ³o ºØ ¥Ñ ²Å ¸¹ % ±a ÀY ªº ¡A §Ú Ì ºÙ ¤§ ¬° " Âà ´« ³W ®æ " ( conversion specification ) ¡A¦r ¤¸ d ºÙ ¬° " Âà ´« ¦r ¤¸ " ( conversion character ) ¡F½Ð °Ñ ¦Ò ªí ¤@ ¤Î example 4-1-2¡C¥t ¥~ ¤@ ´£ ªº ¬O C »y ¨¥ ©w ¸q ªº ¯S ®í ±± ¨î ½X ¡A ¦p ªí ¤G ¡C

example 4-1-1:

main( )
{
int x=1,y=2;
printf("Example 4-1-1:\n");
printf("x=%d\n",x);
printf("x=%d y=%d\n",x,y);
}

result:
x=1
x=1 y=2

ªí¤@.Âà´«¦r¤¸ªººØÃþ ºØ Ãþ ªí ¥Ü ªk ¥\ ¯à ±Ô z
¾ã ¼Æ(integer) d ¥H¤Q¶i¦ì¤è¦¡¦L¥X¡C
o ¥H¤K¶i¦ì¤è¦¡¦L¥X¡C
x ¥H¤Q¤»¶i¦ì¤è¦¡¦L¥X¡C
u ¥H¤£±a²Å¸¹ªº¤Q¶i¦ì¤è¦¡¦L¥X¡C
l ¥Hªø¾ã¼Æ(long)¤è¦¡¦L¥X¡C
¯BÂI¼Æ(float) f ¥H xxx.xxx ¤è¦¡¦L¥X¡C
e ¥H«ü¼Æªº¤è¦¡¦L¥X¡C
¦r¤¸(char) c ¥H¦r¤¸¤è¦¡¦L¥X¡C
s ¥H¦r¦ê¤è¦¡¦L¥X¡C
¨ä¥L(other) - ¦V¥ªÃä¾a»ô¦L¥X ¡C
dd «ü©wÄæ¦ì¼e¡C
. ¤À¹jÄæ¼e¡C
*.* «ü©w¯BÂI¼Æ¤§ºë½T«×¡C

example 4-1-2¡G

main( )
{
int x=42;
float y=12.345;
char c='A',c1[4]="ABC";
printf("%d %o %x %u\n",x,x,x,x);
printf("%15d\n%-15d\n",x,x);
printf("%f %e\n",y,y);
printf("%08.4f\n",y);
printf("%0*.*f\n",8,4,y);
printf("%c %s\n",c,c1);
printf("%-10c\n%15.2s\n",c,c1);
}

result¡G
42 52 2a 42
42
42
12.345000 1.23450e+01
012.3450
012.3450
A ABC
A
AB

ªí¤G.¯S®í±±¨î½X ºØ Ãþ ¥\ ¯à ±Ô z
\n newline ·s¦æ¡C
\r carriage return ¦^ÂkÁä¡C
\t tab ¸õ®æ¡C
\b backspace °h¦ì¡C
\f form feed ¸õ¶¡C
\\ backslash ¤Ï±×½u¡C
\' single quote ³æ¤Þ¸¹¡C
\" double quote Âù¤Þ¸¹¡C

4-2. ®æ ¦¡ ¤Æ ¿é ¤J ¨ç ¼Æ scanf( )

scanf( ) ¬O »P printf( ) ¬Û ¹ï À³ ªº ¨ç ¼Æ ¡A ´£ ¨Ñ ¤F ³\ ¦h ¬Û ¦ü ¦ý ¬O ¤è ¦V ¬Û ¤Ï ªº Âà ´« ¥\ ¯à ¡A ¨ä »y ªk ¦p ¤U¡G

scanf(format_string,argptr1,argptr2,...argptrn);

¦p ¦P printf( ) ¡A scanf( ) ªº ¤Þ ¼Æ ¼Æ ¥Ø ¥ç ¤£ ©T ©w ¡A ¦ý ¤G ªÌ ¦³ ¤@ «Ü ¤j ªº ¤£ ¦P ¡A scanf( ) ªº ¤Þ ¼Æ «¬ ºA ¬° «ü ¼Ð ¡A ³o ¬O ¥² n ªº ¡A ¦] ¬° scanf( ) ±q ¼Ð ·Ç ¿é ¤J ¨Ì Âà ´« ³W ®æ ¨ú ±o ¿é ¤J È ¡A µM «á ¦s ©ñ ¨ì ¦U ¹ï À³ ªº ¤Þ ¼Æ ©Ò «ü ¦V ªº ¦ì §} ¤¤ ¡C ½Ð °Ñ ¦Ò example 4-2-1¡C¦¹ ³B ©Ò ´£ ¨ì ªº Âà ´« ³W ®æ ¦P printf( ) ¨ç ¼Æ ¡C

example 4-2-1¡G

main( )
{
int x;
float y;
char z;
scanf("%d %f %c",&x,&y,&z);
printf("%d %f %c\n",x,y,z);
scanf("%3d %4f",&x,&y);
printf("%d %f\n",x,y);
}

result ¡G
24 12.45 G ------> ¦¹³B¬°Áä½L¿é¤J¤§¸ê®Æ
24 12.450001 G
123 4567890 ------> ¦¹³B¬°Áä½L¿é¤J¤§¸ê®Æ
123 4567.000000

4-3. getchar( ) »P putchar( ) ¨ç ¼Æ

getchar( ) ¬O ¤@ Ó °ò ¥» ¨ç ¼Æ ¡A ¥¦ ¤£ »Ý n ¤Þ ¼Æ ¡A ¦ý ¬O ·| ¶Ç ¦^ µ¹ µ{ ¦¡ ¤@ Ó int «¬ ºA ªº È ¡C ³o Ó ªð ¦^ È ´N ¬O ¤@ Ó ASCII ¦r ¤¸ ( ¥Ñ Áä ½L ¿é ¤J ªº ) ¡C ©Ò ¥H §Ú Ì ª¾ ¹D getchar( ) ªº §@ ¥Î ¬O ¦Ü ¼Ð ·Ç ¿é ¤J ( keyboard ) ¨ú ±o ¤@ ¦r ¤¸ ¸ê ®Æ ¡C ½Ð °Ñ ¦Ò example 4-3-1 ¡C ¬Û ¤Ï ªº putchar( ) ¬O ±N ¬A ¸¹ ¤º ©Ò «ü ©w ªº ÅÜ ¼Æ ©Î ¦r ¤¸ °e ¦Ü ¼Ð ·Ç ¿é ¥X ( monitor ) ¡C ½Ð °Ñ ¦Ò example 4-3-2 ¡C

getchar( ) »P getch( ) ªº ¤ñ ¸û ¨ç¼Æ¦W «¬ºA ¥\¯à
getchar( ) buffered input «Ý¤@¦r¤¸¿é¤J«á»Ý¥[¤@ Enter key ¤~ºâ§¹¦¨¡C
getch( ) no buffered input «Ý¥ô¦ó¦r¤¸¿é¤J«á§Y§¹¦¨¡C

example 4-3-1¡G

main( )
{
int x;
x=getchar( );
printf("%d %c\n",x,x);
}

result :
A ------> ¦¹³B¬°Áä½L¿é¤J¤§¸ê®Æ
65 A

example 4-3-2¡G

main( )
{
int x;
x=getchar( );
putchar(x);
putchar('\n');
putchar('A');
}

result ¡G
A ------> ¦¹³B¬°Áä½L¿é¤J¤§¸ê®Æ
A
A

4-4. gets( ) »P puts( ) ¨ç ¼Æ

°ò ¥» ¤W gets( ) ¡A puts( ) »P getchar( )¡Aputchar( ) ªº ¥\ ¯à Ãþ ¦ü ¡A ®t ²§ ¶È ¦b ©ó «e ªÌ ¥H ¦r ¦ê ·í §@ ¿é ¤J / ¿é ¥X ¡A ¦Ó «á ªÌ ¬O ¥H ¦r ¤¸ ·í §@ ¿é ¤J / ½ü ¥X ¡C ½Ð °Ñ ¦Ò example 4-4-1 ¡C

example 4-4-1

main( )
{
char string[10];
puts("Please input a string:");
gets(string);
puts(string);
}

result :
Please input a string:
my book ------> ¦¹³B¬°Áä½L¿é¤J¤§¸ê®Æ
my book

ps .¥Ñ example 4-4-1 §Ú Ì ±o ª¾ puts( ) ¨ç ¼Æ ¦b °õ ¦æ µ² §ô ®É ·| °e ¥X newline (\n) ªº ¦r ¤¸¡C

¤. ¹B ºâ ¤¸ (operator)

5-1. ºâ ³N ¹B ºâ ¤¸ ( Arithmetic operators )
( 1 ) «ü ©w ¹B ºâ (assignment operator)
±N ¾ã ¼Æ ¡B ¯B ÂI ¼Æ ©Î ¦r ¤¸ «ü ©w µ¹ ¬Y ¤@ ¤£ ¯S ©w ªº ÅÜ ¼Æ ¤§ °Ê §@ ºÙ ¤§ ¡C ½Ð °Ñ ¦Ò example 5-1-1 ¡C

example 5-1-1 ¡G

main( )
{
int x,x1,x2,x3;
float y,y1;
char z;
x=1;
x1=x2=x3=2; /* ¦h««ü©w¹Bºâ */
y=59.5;
y1=2.5e12;
z='c';
printf("%d\n",x);
printf("%d%d%d\n",x1,x2,x3);
printf("%f %e %c\n",y,y1,z);
}

result ¡G
1
2 2 2
59.500000 2.50000e+12 c

( 2 ) ¥[¡B´î¡B¼¡B°£¡Bt ¼Æ ¤Î ¼Ò ¼Æ ¹B ºâ
¥[ ( + )¡B´î ( - )¡B¼ ( * )¡B°£ ( / ) ¬° ¤@ ¯ë ªº ¥| «h ¹B ºâ ¡A ¦b ¦¹ ¤£ ¦h z ¡C ¦Ó ¼Ò ¼Æ ¹B ºâ ( % ) ¬O ¸g ¥Ñ ¨â ±` ¼Æ ¬Û °£ ©Ò ±o ªº ¾l ¼Æ ºÙ ¤§ ¡C t ¼Æ ¬O ¦b ¬Y Ó ±` ¼Æ «e ± ¥[ Ó ´î ¸¹ ©Ò ¦¨ ªº ²Õ ¦X ºÙ ¤§ ¡C ½Ð °Ñ ¦Ò example 5-1-2 ¡C

example 5-1-2 ¡G

main( )
{
int c1,c2,c3,c4,c5,c6;
c1=c2=c3=c4=c5=20;
c1=c1+5;
c2=c2-10;
c3=c3*5;
c4=c4/10;
c5=c5%6;
c6=-5;
printf("%d %d %d %d\n",c1,c2,c3,c4);
printf("%d\n",c5);
printf("%d\n",c6);
}

result ¡G
25 10 100 2
2
-5

( 3 ) ¹B ºâ ªº Àu ¥ý Åv
*¡B/¡B%¡B+¡B- ¥H ¤W ©Ò ¼Ð ¥Ü ªº ¹B ºâ ¤¸ ¡A ¨ä ¹B ºâ ªº Àu ¥ý ¶¶ §Ç ¥Ñ ¥ª ¦Ü ¥k ¡C
( 4 ) »¼ ¼W »P »¼ ´î
»¼ ¼W »P »¼ ´î ¤S ¤À ¬° «e ¸m ¼Ò ¦¡ ( prefix ) »P «á ¸m ¼Ò ¦¡ ( postfix ) ¡F «e ¸m ¼Ò ¦¡ ¬O ±N ++ ©Î - - ¸m ©ó ÅÜ ¼Æ ¤§ «e ¡C ¦Ó «á ¸m ¼Ò ¦¡ ¬O ±N ++ ©Î - - ¸m ©ó ÅÜ ¼Æ ¤§ «á¡C ½Ð °Ñ ¦Ò example 5-1-3 ¡C

example 5-1-3¡G

main( )
{
int a=1,b=1,c=1,d=1;
int aplus,bplus;
int cminus,dminus;
aplus=++a;
bplus=b++;
cminus=--c;
dminus=d--;
printf("%d %d\n",aplus,bplus);
printf("%d %d\n",a,b);
printf("%d %d\n",cminus,dminus);
printf("%d %d\n",c,d);
}

result ¡G
2 1
2 2
0 1
0 0

5-2. ÅÞ ¿è ¹B ºâ ¤¸ ( Logical operators )
( 1 ) ÅÞ ¿è ¹B ºâ ªº ºØ Ãþ ¡G ½Ð °Ñ ¦Ò ªí ¤@ ¤Î example 5-2-1 ¡C

ªí¤@.ÅÞ ¿è ¹B ºâ ¤¸ ¹Bºâ¤¸ ¥\¯à±Ôz ¹Bºâ¤¸ ¥\¯à±Ôz
& AND(¤Î) ~ 1' complement(¤@ªº¸É¼Æ)
| OR(©Î) << Left shift(¥ª²¾)
! NOT(¤Ï¦V) >> Right shift(¥k²¾)
^ Exclusive OR(¤¬¥¸©Î)

example 5-2-1¡G

main( )
{
int land=0x0003,lor=0x0003;
int lxor=0x000c,lcomp=0x00f0;
int lleft=0x0003,lright=0x0080;
land=land & 0x000c;
lor=lor | 0x000c;
lxor=lxor ^ 0x000c;
lcomp=~lcomp;
lleft=lleft << 5;
lright=lright >> 2;
printf("%x %x\n",land,lor);
printf("%x %x\n",lxor,lcomp);
printf("%x %x\n",lleft,lright);
}

result ¡G
0 f
0 ff0f
60 20

! ( NOT ) ¡B~ ( 1' complement )¡B<< ( Left shift )¡B>> ( Righ shift )¡B& ( AND)¡B ^ ( Exclusive OR )¡B| ( OR ) ¡A ¥H ¤W ©Ò ¦C ¤§ ÅÞ ¿è ¹B ºâ ¤¸ ¨ä ¹B ºâ ªº Àu ¥ý ¶¶ §Ç ¨Ì ±Æ ¦C ¶¶ §Ç ¥Ñ ¥ª ¦Ü ¥k ¬° ¤§ ¡C ¥t ¥~ ¤@ ´£ ªº ¬O ºâ ³N ¹B ºâ ¤¸ ¨ä ¹B ºâ ªº Àu ¥ý Åv °ª ©ó ÅÞ ¿è ¹B ºâ ¤¸ ¡C

5-3. Ãö «Y ¹B ºâ ¤¸ ( Relational operators )
Ãö «Y ¹B ºâ ¤¸ ¤@ ¯ë ¥Î ©ó ±± ¨î ¬y µ{ ©Î ¦³ ±ø ¥ó ªº ±Ô z ·í ¤¤ ¡A ¨Ã «D ¥» ³¹ ªº °Q ½× « ÂI ¡A ©Ò ¥H ¶È ¦C ©ó ªí ¤G ¡A «Ý ¥H «á ¬Û Ãö ªº ³¹ ¸` ¤¤ ¦A ¸Ô ²Ó °Q ½× ¤§ ¡C ¦Ü ©ó ¨ä ¹B ºâ ªº Àu ¥ý Åv «h ¬O ¨Ì ªí ¦C ¥Ñ ¤W ¦Ó ¤U ¡B ¥Ñ ¥ª ¦Ü ¥k ¦æ ¤§ ¡C

ªí¤G.Ãö «Y ¹B ºâ ¤¸ ¹Bºâ¤¸ ¥\¯à±Ôz ¹Bºâ¤¸ ¥\¯à±Ôz
< ¤p©ó >= ¤j©óµ¥©ó
<= ¤p©óµ¥©ó = = µ¥©ó
> ¤j©ó != ¤£µ¥©ó

5-4. ½Æ ¦X «¬ «ü ©w ¹B ºâ
¦b example 5-4-1 ¤¤ ¬° C »y ¨¥ ªº ¤@ ¯ë ¹B ºâ ¦¡ ¡A ¦Ó example 5-4-2 ¬° C »y ¨¥ ªº ½Æ ¦X «¬ «ü ©w ¹B ºâ ¡F ¦¹ ³B ªº exp 1 ¬° ÅÜ ¼Æ ¡A ¦Ó exp 2 ¬° ÅÜ ¼Æ ©Î ¹B ºâ ¦¡¡A op ¬° ¹B ºâ ¤¸ ¡C §Ú Ì ¦b ²Ä ¤ ³¹ ©Ò ´£ ¨ì ªº ºâ ³N ¹B ºâ ¤¸ »P ÅÞ ¿è ¹B ºâ ¤¸ §¡ ¾A ¥Î ©ó ½Æ ¦X «¬ «ü ©w ¹B ºâ ¡C

example 5-4-1¡G

exp1 = exp1 op exp2 ;
x = x + 1 ;
x = x - y ;
x1 = x1 * y1 ;
abc = abc & xyz ;
r = r >> n ;
x = x / ( y + 1 ) ;
.
.
.

example 5-4-2¡G

exp1 op = exp2 ;
x + = 1 ;
x - = y ;
x1 * = y1 ;
abc & = xyz ;
r >> = n ;
x / = y + 1 ;
.
.
.

5-5. ±ø ¥ó ¹B ºâ ¤l
¨ä »y ªk ¦p ¤U ©Ò z ¡A ¨Ã ½Ð °Ñ ¦Ò example 5-5-1 ¡C

exp 1 (ÅÜ¼Æ) = exp 2 (Ãö«Y¹Bºâ) ? exp 3 (È©Î¹Bºâ) : exp 4 (¦P exp 3)

example 5-5-1

main( )
{
int x=0,y=1;
x=(y>= 1)?x+1:x;
printf("%d\n",x);
}

result :
1

5-6. §ï «¬ ¹B ºâ
¬Y ¨Ç ®É Ô ·í ÅÜ ¼Æ ©Î ¹B ºâ ¦¡ ªº ¸ê ®Æ «¬ ºA ¤£ ²Å §A (©p) ªº »Ý ¨D ¡A ¦Ó §A (©p) «o §Æ ±æ §ï ÅÜ «¬ ºA ¡A §A (©p) ¸Ó «ç »ò ¿ì ¡I¡H ½Ð °Ñ ¦Ò example 5-6-1 ¡C

syntax ¡G (type) expression

example 5-6-1

main( )
{
int x1;
float y1,y2;
x1=(int)4.123;
y1=(float)46/5;
y2=(int)5.3456;
printf("%d %f %f\n",x1,y1,y2);
}

result :
4 9.200000 5.000000

¤». ¬y µ{ ±± ¨î

6-1. ±± ¨î µ² ºc ( control structure )
µ² ºc ¤Æ µ{ ¦¡ ³] p ªº °ò Â¦ «Ø ¥ß ¦b ¤U ¦C ¤T Ó µ² ºc ¡G
( 1 ) ´` §Ç ( sequential ) : ¥H ¤@ Ó ±µ µÛ ¤@ Ó ¤è ¦¡ ¶i ¦æ §@ ·~ ¡C
( 2 ) ±ø ¥ó °õ ¦æ ( conditional ) : ¦p ªG .... «h .... §_«h ( if_then_else ) ¡C ¦p ªG ±ø ¥ó ²Å ¦X ¡A ´N ¶i ¦æ " «h " ( then ) ¤§ «á ªº ±Ô z ¡C ¤Ï ¤§ ¡A Y ±ø ¥ó ¤£ ²Å ¦X ¡A ´N ¶i ¦æ " §_«h " ( else ) ¤§ «á ªº ±Ô z ¡C
( 3 ) °j ¸ô ( looping ) : « ÂÐ °õ ¦æ ¬Y ¤@ ¤u §@ ¡A ª½ ¨ì º¡ ¨¬ ¬Y ¹w ©w ±ø ¥ó ¬° ¤î ¡C

6-2. ±ø ¥ó °õ ¦æ if ªº ¹B ¥Î
¥H ¤U ¬O if_else ¬y µ{ ±± ¨î ¥i ¯à ¥X ²{ ªº ¥| ºØ »y ªk ¨Ã ½Ð °Ñ ¦Ò example 6-2-1¡B2¡C

syntax 1¡G

if (Ãö«Y¹Bºâ¤¸)

statement ;

syntax 2¡G

if (Ãö«Y¹Bºâ¤¸)
{
statement 1 ;
statement 2 ;
.
.
.
statement n ;
}

ps. ¦p ªG statement ¶W ¹L ¤@ Ó ¥H ¤W ¡A «h ¶· ¥H { } ±N ¨ä °Ï ¶ô ¤À ¹j ¶} ¨Ó ¡C

syntax 3¡G

if (Ãö«Y¹Bºâ¤¸)
statement ;
else
statement ;

syntax 4¡G

if (Ãö«Y¹Bºâ¤¸)
{
statement 1 ;
statement 2 ;
.
statement n ;
}
else
{
statement 1 ;
statement 2 ;
.
statement n ;
}

example 6-2-1¡G

main( )
{
int x;
scanf("%d",&x);
if ( x >= 10 )
printf("%d >= 10\n",x);
else
printf("%d < 10\n",x);
}

result¡G
10 -----> ¦¹³B¬°Áä½L¿é¤JÈ
10 >= 10

example 6-2-2¡G

main( )
{
char c;
scanf("%c",&c);
if( c == 'A' )
{
printf("c=%c\n",c);
printf("This is ture.\n");
}
else
{
printf("c!=A\n");
printf("That isn't ture.\n");
}

result¡G
A -----> ¦¹³B¬°Áä½L¿é¤JÈ
c=A
This is ture.

6-2-1. ÅÞ ¿è ¹B ºâ ¤¸ && »P ||
¦b ¦¹ ¸É ¥R ¨â Ó ÅÞ ¿è ¹B ºâ ¤¸ && »P || ¡C ¦¹ ¨â ªÌ ¬O ¥Î ©ó ³s ±µ ¦h Ó Ãö «Y ¹B ºâ ¤¸ ¡A ¨ä ¥Î ªk §Ú Ì ¥H ¹ê »Ú ªº ½d ¨Ò ¥[ ¥H »¡ ©ú ¡A ½Ð °Ñ ¦Ò example 6-2-3 ¡C

example 6-2-3¡G

main( )
{
int x=1,y=2;
if( x == 1 && y == 3 )
printf("1th step.\n");
else
if( x == 1 || y ==3 )
printf("2th step.\n");
}

result¡G
2th step.

6-3. °j ¸ô while ªº ¹B ¥Î
¦b while ªº ±Ô z ¤¤ ¡A ·í Ãö «Y ¹B ºâ ¤¸ ¤§ ±ø ¥ó ¬° ¯u ®É ¡A ·| ¤£ Â_ ¦a « ÂÐ °õ ¦æ ¦ì ©ó while «á ©Ò ¦C ªº ±Ô z ¡A ª½ ¨ì ±ø ¥ó ÅÜ ¬° §_ ©w ¤~ °± ¤î ¡C while ©Ò ±± ¨î ªº ±Ô z ¡A ¤£ ¤î ©ó ¤@ ¦æ ¡A ¤] ¥i ¥H ¬O ¼Æ ¦æ ¡A ¦ý n ¥Î ¤j ¬A ¸¹ ±N ±ý °õ ¦æ ªº ±Ô z ¬A °_ ¨Ó ¡C ½Ð °Ñ ¦Ò example 6-3-1¡A2¡A3 ¡C

example 6-3-1¡G

syntax 1¡G

while ( Ãö«Y¹Bºâ¤¸ )
statement ;

syntax 2¡G

while ( Ãö«Y¹Bºâ¤¸ )
{
statement 1 ;
.
.
statement n ;
}

example 6-3-2¡G

main( )
{
int i=0;
while ( i < 5 )
printf("%d\n",i++);
printf("We're out of the loop.\n");
}

result¡G
0
1
2
3
4
We're out of the loop.

example 6-3-3¡G

main( )
{
int i=0,c=0;
while ( i < 5 )
{
printf("%d",i++);
printf("%d\n",++c);
}
printf("We're out of the loop.\n");
}

result¡G
01
12
23
34
45
We're out of the loop.

6-3-1. °j ¸ô do-while ªº ¹B ¥Î
§Ú Ì ¤w ¸g ª¾ ¹D while °j ¸ô ¬O ¥ý ÀË ¬d Ãö «Y ¹B ºâ ¤¸ ±ø ¥ó ¬O §_ ¦¨ ¥ß ¡A ¦A ¨M ©w n ¤£ n °õ ¦æ «á ± ªº ±Ô z ¡F ¦Ó do-while °j ¸ô ¡A ¥Ñ ©ó ´ú ¸Õ ±ø ¥ó ¦b °j ¸ô ªº «á ± ¡A ©Ò ¥H °j ¸ô ¤¤ ªº ±Ô z ¦Ü ¤Ö ·| ³Q °õ ¦æ ¤@ ¦¸ ¡A ¦p ªG ±ø ¥ó ¦¨ ¥ß ¡A «h ±Ô z ·| ¦A ³Q °õ ¦æ ¡C ¤Ï ¤§ ¡A «h ·| ¸õ Â÷ °j ¸ô ¡C ½Ð °Ñ ¦Ò example 6-3-4¡A5 ¡C

example 6-3-4¡G

syntax 1¡G

do
statement ;
while ( Ãö«Y¹Bºâ¤¸ ) ;

syntax 2¡G

do
{
statement 1 ;
statement 2 ;
.
.
statement n ;
} while ( Ãö«Y¹Bºâ¤¸ ) ;

example 6-3-5¡G

main( )
{
int i=0,c=0;
do
{
printf("%d",i++);
printf("%d\n",++c);
} while ( i < 5 ) ;
printf("We're out of the loop.\n");
}

result¡G
01
12
23
45
We're out of the loop.

6-4. °j ¸ô for ªº ¹B ¥Î
for ¤¹ ³\ ¨Ï ¥Î ªÌ ¦b ¦P ¤@ ¦æ ±Ô z ¤¤ ´N ³] ©w ¤F °j ¸ô ªº ¤T Ó ³¡ ¥÷ ¡C ( 1 ) p ¼Æ ¾¹ ªº ªì È ¡A ( 2 ) Ãö «Y ¹B ºâ ¤¸ ¡A ( 3 ) ¼W ´î °j ¸ô p ¼Æ ¾¹ ªº È ¡C ¨ä »y ªk ¦p ¤U ©Ò ¥Ü ¡A ¨Ã ½Ð °Ñ ¦Ò example 6-4-1¡A2 ¡C

syntax 1

for ( p¼Æ¾¹ªìÈ¡AÃö«Y¹Bºâ¤¸¡Ap¼Æ¾¹È§ó·s )
statement ;

syntax 2

for ( p¼Æ¾¹ªìÈ¡AÃö«Y¹Bºâ¤¸¡Ap¼Æ¾¹È§ó·s )
{
statement 1 ;
.
.
statement n ;
}

example 6-4-1¡G

main( )
{
int i;
for( i = 0 ; i <= 5 ; ++i )
printf("%d\n",i);
}

result¡G
0
1
2
3
4
5

example 6-4-2¡G

main( )
{
int i,c;
for ( i=0,c=1 ; i < 5 ; ++i,++c )
{
printf("%d",i);
printf("%d\n",c);
}
printf("We're out of the loop.\n");
}

result¡G
01
12
23
34
45
We're out of the loop.

6-5. ±ø ¥ó °õ ¦æ switch ªº ¹B ¥Î
§Ú Ì ¦b ¹ê »Ú ªº µ{ ¦¡ ¼g §@ ®É ±` ·| ¹J ¨ì ¦h ºØ ¿ï ¾Ü ±¡ ªp ¡A ¦Ó ¨Ï ¥Î ¤@ ³s ¦ê if - else ¨Ó ªí ¥Ü ¬O ±` µo ¥Í ªº ¡A ©Ò ¥H C ´£ ¨Ñ ¤F ¤@ ¶µ ¯S ®í ªº ±± ¨î µ² ºc ¡A Åý §Ú Ì ¯à °÷ ¦³ ®Ä ¥B ºë Â² ³B ²z µ{ ¦¡ ¡C ½Ð °Ñ ¦Ò example 6-5-1¡A2¡A3 ¡C

example 6-5-1¡G

switch ( ÅÜ¼Æ)
{
case ±`¼Æ 1 :
statement 1 ;
case ±`¼Æ 2 :
statement 2 ;
.
.
case ±`¼Æ n :
statement n ;
default :
statement ;
}

ps. ¦¹ ³B ±` ¼Æ ªº ¸ê ®Æ «¬ ºA ¬° ¾ã ¼Æ »P ¦r ¤¸ ¨â ºØ ¡C

example 6-5-3¡G

main( )
{
char var='D';
switch ( var )
{
case 'A' :
printf("var = A\n");
break;
case 'B' :
printf("var = B\n");
break;
case 'C' :
printf("var =C\n");
break;
default :
printf("I'm in default.");
}
}

result¡G
I'm in default.

example 6-5-2¡G

main( )
{
int var=3;
switch ( var )
{
case 1 :
printf("var = 1\n");
break;
case 2 :
printf("var = 2\n");
break;
case 3 :
printf("var = 3\n");
break;
default :
printf("I'm in default");
}
}

result¡G
var = 3

6-6. goto ªº ¹B ¥Î
¦b ¤@ Ó µ{ ¦¡ ¤¤ ¡A ¨Ï ¥Î goto ±Ô z ¥i ¥H ±j ¨î §ï ÅÜ µ{ ¦¡ °õ ¦æ ªº ¨B ÆJ ¡A ¦ý ¤] ·| ¦] ¦¹ ¨Ï µ{ ¦¡ ªº µ² ºc ²V ¶Ã ¡A ©Ò ¥H ¦¹ ±Ô z À³ ¾¨ ¶q ¤£ ¥Î ¡C ¨ä »y ªk ¦p ¤U ©Ò z ¡C½Ð°Ñ¦Ò example 6-6-1 ¡C

syntax :
goto label ;
.
.
.
label :
.
.
.

example 6-6-1¡G

main( )
{
int i=1111;
repeat :
printf("%d\n",i);
goto repeat ;
}

result¡G
1111
1111
1111
.
.
.

6-7. break »P continue ªº ¹B ¥Î

example 6-7-1¡G

main( )
{
int i= 0;
while ( i <= 5)
{
++i;
if ( i == 3 )
break ;
printf("%d\n",i);
}
}

result¡G
i=1
i=2

example 6-7-2¡G

main( )
{
int i= 0;
while ( i <= 5)
{
++i;
if ( i == 3 )
continue ;
printf("i=%d\n",i);
}
}

result¡G
i=1
i=2
i=4
i=5
i=6

ps1. break »P continue §¡ ¾A ¥Î ©ó while¡Bdo-while¡Bfor °j ¸ô ¤¤ ¡A ¥Î ªk ¤@ P ¡C
ps2. break ªº ±Ô z ¥u ·| ¸õ ¥X ¥] §t break ³¡ ¥÷ ªº °j °é ¡A ¨Ã ¤£ ·| ¤@ ¦¸ ´N ¸õ ¨ì ³Ì ¥~ ¼h ¡C

¤C. ¨ç ¼Æ

7-1. ¦ó ¿× ¨ç ¼Æ ?
C »y ¨¥ ¥Ñ ¨ç ¼Æ ªº ¶° ¦X ºc ¦¨ , ¤@ Ó ¤@ Ó ¨ç ¼Æ ¦@ ¦P §Î ¦¨ ¤@ Ó ¤j ªº °õ ¦æ ³æ ¦ì , C »y ¨¥ ªº ¨ç ¼Æ »P ¨ä ¥¦ »y ¨¥ ªº °Æ µ{ ¦¡ (subroutine) ¤j ¤£ ¬Û ¦P , ³o ¬O ¦] ¬° C »y ¨¥ ªº ¨ç ¼Æ »P ¼Æ ¾Ç ¤W ©Ò ¥Î ªº ¨ç ¼Æ ¬Û ¦P , ¨ã ¦³ "¤Þ¼Æ" »P "¶Ç¦^È(¨ç¼ÆÈ)" ¡C ¦] ¦¹ , §Q ¥Î C »y ¨¥ ¥i ¥H ¼g ¥X «D ±` º} «G ªº µ{ ¦¡ µ² ºc ¡C
C »y ¨¥ ¨Ï ¥Î ªº ¨ç ¼Æ ¨ä ©I ¥s ¤è ªk »P ¼Æ ¾Ç ¤W ¨Ï ¥Î ªº ¨ç ¼Æ §¹ ¥þ ¬Û ¦P , ¨Ò ¦p :

a = function ( x , y ) ;

±N ÅÜ ¼Æ x , y ¿é ¤J ¨ç ¼Æ function , ¨ä ¶Ç ¦^ È (¨ç¼ÆÈ) ³] ©w µ¹ ÅÜ ¼Æ a ¡C

7-2. ¨ç ¼Æ ªº ©w ¸q (®æ¦¡)

Àx¦sÃþ§O ¸ê®Æ§Î§O ¨ç¼Æ¦WºÙ ( §Î¦¡¤Þ¼Æªº¦ê¦C )

§Î¦¡¤Þ¼Æªº«Å§i ;

{

¨ç¼Æªº¥»Åé(°õ¦æ±Ôz)

}

extern int func(x)

int x;

{

statement

}

7-3. ¨ç ¼Æ ªº Àx ¦s Ãþ §O

¨ç ¼Æ ªº Àx ¦s Ãþ §O Àx¦sÃþ§O ¥\¯à±Ôz
static ¥u¯à¦b¶i¦æ«Å§iªº½sÄ¶³æ¦ì¤º¥i¥H°õ¦æ
extern ¦b¶i¦æ«Å§iªº½sÄ¶³æ¦ì¥H¥~¤]¥i°õ¦æ

ps. ¤@ ¯ë ¨ç ¼Æ ªº Àx ¦s Ãþ §O ¥i ¥H ¬Ù ²¤ , ¦¹ ®É ·í §@ " extern " ³B ²z ¡C
§Ú Ì ¨Ó ¬Ý example 7-3-1 ¡C

example 7-3-1 :

file1.c

extern func1( )
{
.
.
}
static func2( )
{
.
.
}

file2.c

extern func1( );

static func3( )
{
.
.
func1( );
.
.
}

7-4. ¨ç ¼Æ ªº ¶Ç ¦^ È »P ¸ê ®Æ §Î ºA
n ¨D ¨ç ¼Æ °e ¦^ ¶Ç ¦^ È (¨ç¼ÆÈ) , ¥² ¶· ¦b ¨ç ¼Æ ¥» Åé ¤¤ §Q ¥Î return ±Ô z ¶i ¦æ , ¨Ò ¦p :

return ( ÅÜ¼Æ©Î¦¡¤l ) ;

¦¹ ³B ¥² ¶· ¥ý «Å §i ¶Ç ¦^ È (¨ç¼ÆÈ) ªº ¸ê ®Æ §Î ºA ¬O ¤° »ò , ³o ´N ¬O «e ± ¨ç ¼Æ ªº ©w ¸q ¤¤ ©Ò «Å §i ªº ¸ê ®Æ §Î ºA ¡C

7-5. È ªº ¶Ç »¼ ¤è ªk
( 1 ) ¶Ç »¼ ÅÜ ¼Æ È ¥» ¨ ( Call by value ) : example 7-5-1 ¡C
( 2 ) ¶Ç »¼ ÅÜ ¼Æ ªº ¦ì §} ( Call by reference ) : example 7-5-2 ¡C

example 7-5-1 :

#include < stdio.h >
main( )
{
int x,y,z,p;
x=y=z=3;
p=func(x,y,z);
printf("p-->%d\n",p);
}
int func(a,b,c)
int a,b,c;
{
int d;
d=a+b+c;
return(d);
}

result :
p-->9

example 7-5-2 :

#include < stdio.h >
main( )
{
int x,y,z,p;
x=y=z=3;
func(&x,&y,&z,&p);
printf("p-->%d\n",p);
}
func(a,b,c,d)
int *a,*b,*c,*d;
{
*d=*a+*b+*c;
}

result :
p-->9

7-6. »¼ Âk ( recursive )
C »y ¨¥ ªº ¨ç ¼Æ ¥i ¶i ¦æ »¼ Âk ©I ¥s ( recursive call ) ¡A ¤] ´N ¬O »¡ ¦b ¨ç ¼Æ ¤§ ¤¤ ¥i ©I ¥s ¨ç ¼Æ ¥» ¨ ¡C ¨ç ¼Æ ¦b ¶i ¦æ »¼ Âk ©I ¥s ®É ¡A ¦b ¨ä ©Ò ¨Ï ¥Î ªº ÅÜ ¼Æ ³Q °ï ¿n ¦b °ï Å| °Ï °ì ¡A ¨C ¦¸ °õ ¦æ return ±Ô z ¡A ¨ç ¼Æ ¦b ¸Ó ¼h ©I ¥s ¤¤ ©Ò ¨Ï ¥Î ªº ÅÜ ¼Æ ´N ±q °ï Å| ªð ¦^ ¡C ¹³ ³o ¼Ë ¶i ¦æ ¦h ¦¸ »¼ Âk ©I ¥s ¦] »Ý n ³\ ¦h °ï Å| °Ï °ì ¡A ©Ò ¥H ¨Ã «D ¬O «Ü ¦³ ®Ä ²v ªº ¤è ªk ¡C ½Ð °Ñ ¾\ example 7-6-1 ¡C

example 7-6-1 :

#include < stdio.h >
main()
{
int i=0;
while(++i<6)
printf("%d! is %d\n",i,factorial(i));
}
factorial(n)
int n;
{
if(n==1)
return(1);
else
return(n*factorial(n-1));
}

result :
1! is 1
2! is 2
3! is 6
4! is 24
5! is 120

²Ä ¤K ³¹ C ªº «e ¸m ³B ²z ¾¹

8-1 «e ¸m ³B ²z ¾¹ (preprocessor)

§Ú Ì ¦b ¼g µ{ ¦¡ ªº ®É Ô , ±` ±` ·| ¸I ¨ì ¬Y ¨Ç ¸ê ®Æ « ÂÐ ¨Ï ¥Î ©Î ¬O ¬Y ¨Ç µ{ ¦¡ ¤ù ¬q ¦] ¯S ©w ªº ±ø ¥ó ¤U ¶· ©ñ ±ó , ¦p ªG ¥H ¥¿ ±` ªº ¤è ¦¡ ¨Ó ¼g §@ µ{ ¦¡ , ¥i ¯à ·| ¼W ¥[ µL ¿× ªº µ{ ¦¡ ¤ù ¬q , ¨Ï ªº µ{ ¦¡ ²Â « ¤£ ³ô , ¦ý ¦p ªG ¯à ¦n ¦n ¹B ¥Î C »y ¨¥ ©Ò ´£ ¨Ñ ªº «e ¸m ³B ²z ¾¹ , «h ¤W z ªº ª¬ ªp ±N §ï µ½ ³\ ¦h . ³o Ó ¥\ ¯à ¨Ã «D C »y ¨¥ ¥» ¨ ªº ®æ ¦¡ , ¦ý ¤´ ¬° ½s Ä¶ µ{ ¦¡ ©Ò ¯à ±µ ¨ü . ¹ï «e ¸m ³B ²z ¾¹ ªº ¸Ñ ÄÀ , ¦p ¹Ï ¤@ ©Ò ¥Ü , ¦] ¬° ¥¦ ¬O ¦b µ{ ¦¡ ½s Ä¶ ¤§ «e °õ ¦æ , ©Ò ¥H ÅU ¦W «ä ¸q ºÙ ¤§ «e ¸m ³B ²z .

«e¸m³B²z ½sÄ¶³B²z ³sµ²³B²z

¢z¢w¢w¢w¢w¢{ ¢z¢w¢w¢w¢w¢{ ¢z¢w¢w¢w¢w¢{ ¢z¢w¢w¢w¢w¢{
¢x ì ©l ¢x ¢x ì ©l ¢x ¢x ¥Ø ªº ¢x ¢x °õ ¦æ ¢x
¢x ¢u¢w¡÷¢x ¢u¢w¡÷¢x ¢u¢w¡÷¢x ¢x
¢x ÀÉ ®× ¢x ¡ô¢x µ{ ¦¡ ¢x ¢x ÀÉ ®× ¢x ¡ô¢x ÀÉ ®× ¢x
¢|¢w¢w¢w¢w¢} ¢x¢|¢w¢w¢w¢w¢} ¢|¢w¢w¢w¢w¢} ¢x¢|¢w¢w¢w¢w¢}
¢x ¢x
¢z¢w¢w¢w¢w¢{ ¢x ¢z¢w¢w¢w¢w¢{ ¢x
¢xinclude ¢x ¢x ¢x ¥Ø ªº ¢x ¢x
¢x ¢u¢w¢} ¢x ¢u¢w¢}
¢x ÀÉ ®× ¢x ¢x ÀÉ ®× ¢x
¢|¢w¢w¢w¢w¢} ¢|¢w¢w¢w¢w¢}

¹Ï¤@ . ½sÄ¶¬yµ{

8-2 «e ¸m ³B ²z ¾¹ ®æ ¦¡ »P ºØ Ãþ

<1> «e ¸m ³B ²z ¾¹ ªº ®æ ¦¡ ¦p ¤U¡G

#«e¸m³B²z¾¹¦WºÙ ³B²z¤º®e

<2> «e ¸m ³B ²z ¾¹ ±Ô z ¥i ¼g ¦b µ{ ¦¡ ¤¤ ªº ¥ô ¦ó ¦a ¤è .
<3> «e ¸m ³B ²z ¾¹ ªº ºØ Ãþ ¦p ¤U ªí ¤@ ©Ò ¦C , ¨ä ¦U ºØ «e ¸m ³B ²z ¾¹ ¤§ ¨Ï ¥Î ¤è ªk , §Ú Ì ±N ¦b ¥H ¤U ªº ³¹ ¸` ¤¤ ¤@ ¤@ ¤¶ ²Ð .

¢z¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢s¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢{
¢x ¥\ ¯à ¢x «e¸m³B²z¾¹¤§±Ôz ¢x
¢u¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢t
¢x ÀÉ®×ªº§t¤J ¢x#include ¢x
¢u¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢t
¢x¦r¦êªº¸m´«/¥¨¶°©w¸q ¢x#define / #undef ¢x
¢u¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢t
¢x ¢x#if .... #elif .... #else .... #endif ¢x
¢x ±ø ¥ó ½s Ä¶ ¢x ¢x
¢x ¢x#ifdef (#ifndef) .... #else .... #endif ¢x
¢|¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢r¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢w¢}

ªí¤@ «e¸m³B²z¾¹ªººØÃþ

8-3 #include¡]ÀÉ ®× ªº §t ¤J¡^

¦¹ ±Ô z ¤§ ¥D n ¥Ø ªº ¬O Åý §Ú Ì ±N ¬Y Ó µ{ ¦¡ ÀÉ ©Î ¼Ð ÀY ÀÉ ¥] ¬A ¦b ¥Ø «e ªº µ{ ¦¡ ¤º , ¨Ï ¥Ø «e ªº µ{ ¦¡ ¥i ¤Þ ¥Î ¸Ó ÀÉ ¤º ªº ¸ê ®Æ ©Î µ{ ¦¡ . »y ªk ¦p ¤U :

<1> #include "ÀÉ®×¦WºÙ" : ¦¹ªí¥Ü¨t²Î±N·|¨ì¥Ø«eªº¥Ø¿ý (¸ô®| )
¤U´M§ä©Ò«ü©wªºÀÉ®× ,¦pªG§ä¤£¨ì ,«h
·|¥h¨t²Î³]©wªº¥Ø¿ý©³¤U´M§ä .

<2> #include <ÀÉ®×¦WºÙ> : ¦¹ªí¥Ü¨t²Î±N·|¨ì¨t²Î³]©wªº¥Ø¿ý©³¤U
´M§ä©Ò«ü©wªºÀÉ®× .

¦³Ãö #include ªº¨Ï¥Î½d¨Ò ,½Ð°Ñ¦Ò Example 8-3-1 .

Example 8-3-1 :

#include < stdio.h >
#include "def.h"
main()
{
printf("PI=%2.5f\n",PI);
printf("a+b=%d\n",a+b);
}

-- def.h ªºÀÉ®×¤º®e --

#define PI 3.14159
#define a 10
#define b 20
----------------------

°õ¦æµ²ªG :

PI=3.14159
a+b=30

8-4 #define¡]¦r ¦ê ªº ¸m ´« / ¥¨ ¶° ©w ¸q¡^»P #undef

<1> ¥¨ ¶° #define ªº ¨Ï ¥Î :¨ä ¥D n ¤§ ¥\ ¯à ¬O ¥H Â² ³æ ªº ¦W ºÙ ¨ú ¥N ¬Y ¨Ç ¯S ©w ªº ±` ¼Æ ©Î ¦r ¦ê , ¨ç ¼Æ , «Ø ¥ß §ó Â² ³æ §ó ©ö À´ ªº µ{ ¦¡ . »y ªk ¦p ¤U :

#define ¥¨¶°¦WºÙ ±`¼Æ©Î¨ç¦¡©Î¦r¦ê

<2> ¥¨ ¶° #undef ªº ¨Ï ¥Î :¨ä ¥D n ¤§ ¥\ ¯à «h ¬O ¨ú ®ø ³Ì ±µ ªñ ¤§ #define ©Ò ©w ¸q ªº ±Ô z .
#undef ¥¨¶°¦WºÙ

<3> ¦³ Ãö #define »P #undef ªº ¨Ï ¥Î ¤è ¦¡ , ½Ð °Ñ ¦Ò Example 8-4-1 , 8-4-2 , 8-4-3 , 8-4-4 .

Example 8-4-1 :

#include < stdio.h >
#define PI 3.14159
main()
{
printf("PI=%2.5f",PI);
}

°õ¦æµ²ªG :

PI=3.14159

Example 8-4-2 :

#include < stdio.h >
#define add(a,b) a+b
main()
{
int i,j,k;
i=2;
j=3;
k=add(i,j);

printf("i+j=%d\n",k);
}

°õ¦æµ²ªG :

i+j=5

Example 8-4-3 :

#include < stdio.h >
#define pstring "This is my first C program.\n"
main()
{
printf(pstring,1);
}

°õ¦æµ²ªG :

This is my first C program.

Example 8-4-4 :

#include < stdio.h >
#define compare(a,b) \
if ( a > b ) \
printf("a > b"); \
else \
if ( a < b ) \
printf("a < b"); \
else \
printf("a = b");
main()
{
int a,b;
a=5;
b=10;
compare(a,b);
}

°õ¦æµ²ªG :
a < b

Example 8-4-5 :

#include < stdio.h >
#define TURBOC
main()
{
#ifdef TURBOC
printf("Borland C compiler.\n");
#endif

#undef TURBOC

#ifndef TURBOC
printf("MircoSoft C compiler.\n");
#endif
}

°õ¦æµ²ªG :

Borland C compiler.
MircoSoft C compiler.

8-5 ±ø ¥ó ¦¡ ªº ½s Ä¶

<1> ±ø ¥ó ¦¡ ªº ½s Ä¶ , ¦¹ ¥Î ªk ªº ³Ì ¤j ¯S ¦â ¦b ©ó ¨ä ±Ô z ¤£ ¶È ¥i ¥H ©ñ ¦b µ{ ¦¡ ªº ³» ºÝ , ¥ç ¥i ±N ¨ä ±Ô z ©ñ ¸m ©ó µ{ ¦¡ ¤¤ . ¥H ¤U ©Ò ¦C (1) ,(2) ,(3) ¶µ ¬° ±ø ¥ó ¦¡ ½s Ä¶ ªº ¦¨ û .

(1) #if ©M #endif
(2) #else / #elif
(3) #ifdef ©M #ifndef

<2> ¥Ñ ¥H ¤W ªº ±Ô z , §Ú Ì ¤£ Ãø µo ²{ ³o ¨Ç ±ø ¥ó ¦¡ ½s Ä¶ ªº ¦¨ û »P «e ´X ³¹ ±± ¨î ¬y µ{ ©Ò ´£ ¨ì if ... then ... else ªº »y ªk ¤Q ¤À ¬Û ¦ü , ¥B ³s ¨Ï ¥Î ¤è ªk »P ì ²z ³£ «D ±` ¬Û ¦ü .
<3> ±ø ¥ó ¦¡ ªº ½s Ä¶ ³B ²z , ½Ð °Ñ ¦Ò Example 8-5-1 , 8-5-2 , 8-4-5 .

Example 8-5-1 :

#include < stdio.h >
#define value 99
main()
{
#if value < 100
printf("value < 100");
#else
printf("value >= 100");
#endif
}

°õ¦æµ²ªG :

value < 100

Example 8-5-2 :

#include < stdio.h >
#define value 100
main()
{
#if value < 100
printf("value < 100");
#elif value > 100
printf("value > 100");
#else
printf("value = 100");
#endif
}

°õ¦æµ²ªG :

value = 100

²Ä ¤E ³¹ °} ¦C »P «ü ¼Ð

9-1 °} ¦C ( Array )

¦b ¹q ¸£ ¸ê ®Æ ¤§ ³B ²z »P ÀÉ ®× ¶¡ ªº ¸ê ®Æ ¥æ ´« ¤¤ , ±` ±` »Ý n ¤j ¶q ªº °O ¾Ð ªÅ ¶¡ ¨Ó ¼È ¦s ³o ¨Ç ¸ê ®Æ , ¦ý ¬O ¬° ¤F ¦³ ¨t ²Î , ¦³ ³W «h ªº ©ñ ¸m »P ¼È ¦s , C »y ¨¥ ´£ ¨Ñ ¤F °} ¦C ( array ) ¨Ó Àx ¦s ¸ê ®Æ , ¦] ¦¹ ¤j ¤j ´£ ¤É ¤F µ{ ¦¡ ªº ¤u §@ ®Ä ²v , ¤] ¯à ¥R ¤À ¦³ ®Ä ªº ¨Ó ¨Ï ¥Î °O ¾Ð Åé . C »y ¨¥ ´£ ¨Ñ °} ¦C ªº ¸ê ®Æ «¬ ºA ¥] §t ¤F ¾ã ¼Æ ( int ) , ¯B ÂI ¼Æ ( float ) , ¦r ¤¸ ( char ) , ¦b ¦s ¨ú «¬ ºA ¤è ± ¤] ´£ ¨Ñ ¤F ÀR ºA ( static ) , ¥~ ³¡ ( extern ) °} ¦C «¬ ºA . ( ¥Î ªk »P ¯S ©Ê ½Ð °Ñ ¦Ò ¬Û Ãö ¤§ ³¹ ¸` ) . ¦Ó °} ¦C ªº ±Æ ¦C ¤è ¦¡ ¥ç ¤À ¬° ¤@ ºû , ¤G ºû , ¤T ºû ... µ¥ µ¥ . §Ú Ì ´N ¥H ¤@ ºû »P ¤G ºû °} ¦C ¥[ ¥H °Q ½× .

9-1-1 ¤@ ºû °} ¦C

<1> ¤@ ºû °} ¦C ªº «Å §i ¤è ¦¡ ¦p ¤U ©Ò z :

°}¦Cªº¸ê®Æ«¬ºA °}¦Cªº¦WºÙ [ °}¦Cªº¤j¤p ] ;

For example :

int array1 [ 20 ] ;
float array2 [ 25 ] ;
char array3 [ 50 ] ;

<2> «Å §i °} ¦C ªº ¦ì ¸m ¬° µ{ ¦¡ ¤§ ³Ì ¤W ºÝ .
<3> ¤@ ºû °} ¦C ªº ±Æ ¦C µ² ºc ¦p ¤U ¹Ï ©Ò z . §Ú Ì Á| ¨Ò ¤@ °} ¦C ¦W ¥s A ªº °} ¦C , ¨ä °} ¦C ¤j ¤p ¦³ n Ó , §Y ¬° A[n] .

¢z¢w¢w¢w¢w¢s¢w¢w¢w¢w¢s¢w¢w¢w¢w¢s¢w¢w¢w¢w¢s¢w¢w¢w¢w¢{
¢x A[0] ¢x A[1] ¢x A[2] ¢x ...... ¢x A[n-1] ¢x
¢|¢w¢w¢w¢w¢r¢w¢w¢w¢w¢r¢w¢w¢w¢w¢r¢w¢w¢w¢w¢r¢w¢w¢w¢w¢}

<4> °} ¦C ¤j ¤p ªº «Å §i , °£ ¤F ¨Ì ¦Û ¤v ªº »Ý n ¨Ó ©w q ¥~ , ÁÙ »Ý ¨Ì ½s Ä¶ ¾¹ ¦b ½s Ä¶ ®É ¤§ °O ¾Ð Åé «¬ ºA ¤Î ¹ê »Ú ¥i ¥Î ¤§ °O ¾Ð Åé ¤j ¤p ¦Ó ©w , ¨Ã ¤£ ¬O ·Q n ¦h ¤Ö ´N ¦³ ¦h ¤Ö . ¨Ò ¦p °} ¦C ¦W ¥s A ªº °} ¦C , ¨ä °} ¦C ¤j ¤p ¬° 5 , §Y ¬° A[5] , ¨ä °} ¦C ªº ¦¨ û ¤À §O ¬° A[0] , A[1] ,A[2] , A[3] , A[4] ¤Ó .
<5> ¦p ¦ó ¦s ¨ú °} ¦C ¤¤ ¤§ ¸ê ®Æ ? §Ú Ì ¥i ¥H ¦b «Å §i °} ¦C ®É , «ü ©w ¼Æ È µ¹ °} ¦C . ¨Ò ¦p :
int score[5]={ 1, 2, 3 ,4 ,5 };

©Î ¬O ¦bµ{ ¦¡ ¹L µ{ ¤¤ «ü ©w ¼Æ È µ¹ °} ¦C . ¨Ò ¦p :
main()
{
int score[5]; /* °}¦C«Å§i */

.
.

score[0]=1; /* µ{¦¡¥»Åé */
score[1]=2;
score[2]=3;
score[3]=4;
score[4]=5;
.
.
}

<6> §Ú Ì ´N ¤@ ºû °} ¦C ¨Ó Á| ¤@ ¨Ò ¤l »¡ ©ú . ½Ð °Ñ ¦Ò example : 9-1-1 .

Example 9-1-1 :

#include < stdio.h >
main()
{
int count,total=0;
int number[10]={ 1,2,3,4,5,6,7,8,9,10 };

for( count=0 ; count < 10 ; ++count )
{
printf("number[%d]=%d\n",count,number[count]);
total=total+number[count];
}
printf("1+2+3+4+5+6+7+8+9+10=%d\n",total);
}

°õ ¦æ µ² ªG :

number[0]=1
number[1]=2
number[2]=3
number[3]=4
number[4]=5
number[5]=6
number[6]=7
number[7]=8
number[8]=9
number[9]=10
1+2+3+4+5+6+7+8+9+10=55

9-1-2 ¤G ºû °} ¦C

<1> ¤G ºû °} ¦C ªº «Å §i ¤è ¦¡ ¦p ¤U ©Ò z :

°}¦Cªº¸ê®Æ«¬ºA °}¦Cªº¦WºÙ [ ¦C°}¦Cªº¤j¤p ][ ¦æ°}¦C¤j¤p ] ;

For example :

int array1 [ 10 ][ 20 ] ;
float array2 [ 5 ][ 25 ] ;
char array3 [ 100 ][ 50 ] ;

<2> «Å §i °} ¦C ªº ¦ì ¸m ¬° µ{ ¦¡ ¤§ ³Ì ¤W ºÝ .
<3> ¤G ºû °} ¦C ªº ±Æ ¦C µ² ºc ¦p ¤U ¹Ï ©Ò z . §Ú Ì Á| ¨Ò ¤@ °} ¦C ¦W ¥s A ªº °} ¦C , ¨ä ¦C °} ¦C ¤j ¤p ¦³ m Ó , ¦æ °} ¦C ¤j ¤p ¦³ n Ó , §Y ¬° A[m][n] .

¦æ (column)
¢z¢w¢w¢w¢w¢w¢s¢w¢w¢w¢w¢w¢s¢w¢w¢w¢w¢w¢s¢w¢w¢w¢w¢s¢w¢w¢w¢w¢w¢w¢{
¦C ¢x A[0][0] ¢x A[0][1] ¢x A[0][2] ¢x ...... ¢xA[0][n-1] ¢x
¢u¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢t
(row)¢x A[1][0] ¢x A[1][1] ¢x A[1][2] ¢x ...... ¢xA[1][n-1] ¢x
¢u¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢t
¢x A[2][0] ¢x A[2][1] ¢x A[2][2] ¢x ...... ¢xA[2][n-1] ¢x
¢u¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢t
¢x . ¢x . ¢x . ¢x . ¢x . ¢x
¢u¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢t
¢x . ¢x . ¢x . ¢x . ¢x . ¢x
¢u¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢q¢w¢w¢w¢w¢q¢w¢w¢w¢w¢w¢w¢t
¢xA[m-1][0] ¢xA[m-1][1] ¢xA[m-1][2] ¢x ...... ¢xA[m-1][n-1] ¢x
¢|¢w¢w¢w¢w¢w¢r¢w¢w¢w¢w¢w¢r¢w¢w¢w¢w¢w¢r¢w¢w¢w¢w¢r¢w¢w¢w¢w¢w¢w¢}

<4> °} ¦C ¤j ¤p ªº «Å §i , °£ ¤F ¨Ì ¦Û ¤v ªº »Ý n ¨Ó ©w q ¥~ , ÁÙ »Ý ¨Ì ½s Ä¶ ¾¹ ¦b ½s Ä¶ ®É ¤§ °O ¾Ð Åé «¬ ºA ¤Î ¹ê »Ú ¥i ¥Î ¤§ °O ¾Ð Åé ¤j ¤p ¦Ó ©w , ¨Ã ¤£ ¬O ·Q n ¦h ¤Ö ´N ¦³ ¦h ¤Ö . ¨Ò ¦p °} ¦C ¦W ¥s A ªº °} ¦C , ¨ä ¦C °} ¦C ¤j ¤p ¬° 2 , ¦æ °} ¦C ¤j ¤p ¦³ 5Ó , §Y ¬° A[2][5] , ¨ä °} ¦C ªº ¦¨ û ¤À §O ¬° A[0][0] , A[0][1] , A[0][2] , A[0][3] , A[0][4] , A[1][0] , A[1][1] , A[1][2] , A[1][3] , A[1][4]¤Q Ó .
<5> ¦p ¦ó ¦s ¨ú °} ¦C ¤¤ ¤§ ¸ê ®Æ ? §Ú Ì ¥i ¥H ¦b «Å §i °} ¦C ®É , «ü ©w ¼Æ È µ¹ °} ¦C . ¨Ò ¦p :

int score1[2][5]={{ 1, 2, 3, 4, 5 },{ 5, 4, 3, 2, 1 }};

©Î ¬O ¦b µ{ ¦¡ ¹L µ{ ¤¤ «ü ©w ¼Æ È µ¹ °} ¦C . ¨Ò ¦p :

main()
{
int score1[2][5]; /* °}¦C«Å§i */

.
.

score1[0][0]=1; /* µ{¦¡¥»Åé */
score1[0][1]=2;
score1[0][2]=3;
score1[0][3]=4;
score1[0][4]=5;
score1[1][0]=5;
score1[1][1]=4;
score1[1][2]=3;
score1[1][3]=2;
score1[1][4]=1;
.
.
}

<6> §Ú Ì ´N ¥Î ¤E ¤E ¼ ªk ªí ªº ¨Ò ¤l ¨Ó »¡ ©ú ¤G ºû °} ¦C ªº ¨Ï ¥Î . ½Ð °Ñ ¦Ò example : 9-1-2 .

Example 9-1-2 :

#include < stdio.h >
main()
{
int count,count1;
int _nine[2][9]={{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9}};

printf("9 x 9 list :\n");

for( count=0 ; count< 9 ; ++count )
for( count1=0 ; count1<9 ; ++count1 )
printf("%2dx%2d=%2d\n",_nine[0][count],_nine[1][count1]
,_nine[0][count]*_nine[1][count1]);

}

°õ ¦æ µ² ªG :

9 x 9 list :
1x 1= 1
1x 2= 2
1x 3= 3
1x 4= 4
1x 5= 5
1x 6= 6
1x 7= 7
1x 8= 8
1x 9= 9
2x 1= 2
2x 2= 4

.
.
.
.

9x 5=45
9x 6=54
9x 7=63
9x 8=72
9x 9=81

9-1-3 ¦r ¤¸ °} ¦C

<1> ¦r ¤¸ °} ¦C ªº «Å §i ¤è ¦¡ ¦p ¤U ©Ò z :

char °}¦Cªº¦WºÙ [ °}¦Cªº¤j¤p ] ;

char °}¦Cªº¦WºÙ [ ¦C°}¦Cªº¤j¤p ][ ¦æ°}¦C¤j¤p ] ;

For example :

char array1 [ 10 ] ;
char array2 [ 5 ][ 25 ] ;

<2> «Å §i °} ¦C ªº ¦ì ¸m ¬° µ{ ¦¡ ¤§ ³Ì ¤W ºÝ .
<3> °} ¦C ¤j ¤p ªº «Å §i , °£ ¤F ¨Ì ¦Û ¤v ªº »Ý n ¨Ó ©w q ¥~ , ÁÙ »Ý ¨Ì ½s Ä¶ ¾¹ ¦b ½s Ä¶ ®É ¤§ °O ¾Ð Åé «¬ ºA ¤Î ¹ê »Ú ¥i ¥Î ¤§ °O ¾Ð Åé ¤j ¤p ¦Ó ©w , ¨Ã ¤£ ¬O ·Q n ¦h ¤Ö ´N ¦³ ¦h ¤Ö .
<4> ¦p ¦ó ¦s ¨ú °} ¦C ¤¤ ¤§ ¸ê ®Æ ? §Ú Ì ¥i ¥H ¦b «Å §i °} ¦C ®É , «ü ©w ¦r ¤¸ µ¹ °} ¦C . ¨Ò ¦p :

¨Ò¤@ :
int string[6]={'A','B','C','D','E','\0'};

©Î int string[5]="ABCDE";

¨Ò¤G :
int string1[2][6]={{'A','B','C','D','E','\0'},
{'F','G','H','I','J','\0'}};

©Î int string1[2][5]={ "ABCDE","FGHIJ" };

©Î ¬O ¦b µ{ ¦¡ ¹L µ{ ¤¤ «ü ©w ¼Æ È µ¹ °} ¦C . ¨Ò ¦p :

main()
{
int string[6]; /* °}¦C«Å§i */

.
.

score1[0]='M'; /* µ{¦¡¥»Åé */
score1[1]='E';
score1[2]='R';
score1[3]='R';
score1[4]='Y';
score1[5]='\0';

strcpy(string,"MERRY"); /* ±N "MERRY" ¦r¦ê«þ¨©¦Ü
string °}¦C¤¤ */
.
.
}

<6> ¥Ñ ©ó ¥H ¤W ±Ô z , §Ú Ì ª¾ ¹D ¦p ªG ¦r ¤¸ °} ¦C ¥H ¦r ¤¸ ªº ¤è ¦¡ ¨Ó ¦s ¨ú °} ¦C , «h ¶· ¥[ µ² §ô ¦r ¤¸ \0 ©ó °} ¦C ªº ³Ì ¥½ ºÝ , ªí ¥Ü ¦¹ ¦r ¤¸ °} ¦C ªº µ² §ô . ¨Ò ¦p <3> ¶µ ¨Ò ¤@ ©Ò z . ¦p ªG ¦r ¤¸ °} ¦C ¥H ¦r ¦ê ªº ¤è ¦¡ ¨Ó ¦s ¨ú °} ¦C , «h C ½s Ä¶ ¾¹ ·| ¦Û °Ê ¦b ¦r ¦ê ³Ì ¥½ ºÝ ¥[ ¤W µ² §ô ¦r ¤¸ \0 ªí ¥Ü ¦¹ ¦r ¤¸ °} ¦C ªº µ² §ô , ©Ò ¥H §Ú Ì ¤£ »Ý ¦Û ¦æ ¥[ ¤J . ¨Ò ¦p <3> ¶µ ¨Ò ¤G ©Ò z . ( \0 ªí ¦¡ ¹s ªº ¤K ¶i ¦ì ¼Æ )
<7> §Ú Ì ´N ¨Ó Á| ¤@ ¨Ò ¤l »¡ ©ú . ½Ð °Ñ ¦Ò example : 9-1-3 .

Example 9-1-3 :

#include < stdio.h >
main()
{
char string1[5]={'A','B','C','D','E'};
char string2[6]={'A','B','C','D','E','\0'};
char string3[6]="ABCDE\0";
char string4[5]="ABCDE";

printf("string1 = \"%s\"\n",string1);
printf("string2 = \"%s\"\n",string2);
printf("string3 = \"%s\"\n",string3);
printf("string4 = \"%s\"\n",string4);

}

°õ ¦æ µ² ªG :

string1 = "ABCDEÿABCDE" /*¦¹¦r¦ê¬O§_¦³¨Ç¤£¤@¼Ë?*/
string2 = "ABCDE"
string3 = "ABCDE"
string4 = "ABCDE"

9-1-4 °} ¦C »P °ò ¥» ¿é ¥X / ¿é ¤J ¨ç ¼Æ ªº ·f °t

µL ½× ¬O ¾ã ¼Æ , ¯B ÂI ¼Æ ©Î ¦r ¤¸ °} ¦C (¦r¦ê ) §¡ ¥i »P °ò ¥» ¿é ¥X / ¿é ¤J ¨ç ¼Æ ªº ·f °t . ¨Ò ¦p ¤@ ¦W ¥s array1 ªº ¦r ¤¸ °} ¦C :

printf("%s\n",array1);
puts(array1);
scanf("%s",array1);
gets(array1);

©Ò ¥H USER ¥i ¥H ¦Û ¦æ °Ñ ¦Ò ¬Û Ãö ªº ³¹ ¸` ¨Ï ¥Î ¤§ . ¦b ¦¹ ¸É ¥R ¤@ ÂI , ¤W z ©Ò ±Ô z scanf ¨ç ¼Æ ¬O ¥G ¤Ö ¤@ Ó & (¦ì§}¹Bºâ¤¸ ) ? ? ? ¨S ¿ù ! ¨º ¬O ¦] ¬°°} ¦C ¥» ¨ ªº ¦W ºÙ §Y ¥N ªí ¨ä ¦ì §} ¤§ ©Ò ¦b , ©Ò ¥H ¤£ »Ý ¦b °} ¦C ¦W ºÙ «e ¥[ ¤W & ²Å ¸¹ ¨Ó ¥N ªí ¦ì §} .

9-2 «ü ¼Ð ( pointer )

Ãö ©ó «ü ?, ¹ï ©ó ¤@ ¨Ç C »y ¨¥ ªì ¾Ç ªÌ ¦Ó ¨¥ ¬O ¤£ ©ö ÁA ¸Ñ ªº ¤@ ºØ «Ü ©â ¶H , ¦ý ¤S «Ü ¹ê ¥Î ªº ¤u ¨ã . ¬Û «H ¥u n ¤j ®a ¹ï C »y ¨¥ ¦³ ¿³ ½ì , §Ú Ì «Ü §Ö ´N ¯à ¶i ¤J «ü ¼Ð ªº ¥@ ¬É ¸Ì . »¡ ¤F ³o »ò ¦h , ¨º ¦ó ¿× «ü ¼Ð ©O ? Â² ³æ ªº »¡ " ¥¦ ¬O ¤@ Ó ¥Î ¨Ó «ü ¥Ü ¸ê ®Æ ¦s ¦b ©ó °O ¾Ð Åé ¤¤ ªº ¦ì §} ¼Ð ¥Ü ¾¹ " , Â² ºÙ «ü ¼Ð . ¥Ñ «ü ¼Ð ªº ¹B ¥Î ¸Ì , ¨Ï §Ú Ì ÁA ¸Ñ ¨ì ¸ê ®Æ »P ¦ì §} ¶¡ ªº Ãö «Y , ¶i ¦Ó ¹ï °O ¾Ð Åé °t ¸m ¦³ «Ü ¤j ªº À° §U . ½Ð °Ñ ¦Ò ¤U ¦C ³¹ ¸` .

9-2-1 «ü ¼Ð ªº °ò ¥» Æ[ ©À

<1> ¦b C »y ¨¥ ¤¤ , «ü ¼Ð ÅÜ ¼Æ ªº «Å §i ¤è ¦¡ ¦p ¤U :

ÅÜ¼Æ¸ê®Æ«¬ºA *ÅÜ¼Æ¦WºÙ ;

¨Ò¦p:

int *p ;

¥Ñ ¥H ¤W ªº «Å §i , ªí ¥Ü ¤F ¤T ¥ó ¨Æ [1] p ¬° «ü ¼Ð ÅÜ ¼Æ . [2] p ¥N ªí ¤@ Ó ¦ì §} , ¦Ó *p ¥N ªí ¦¹ ¦ì §} ªº ¸ê ®Æ . [3] p ©Ò «ü ¦V ¦¹ ¦ì §} ¤§ ÅÜ¼Æ «¬ ºA ¬° ¾ã ¼Æ ( int ) .
<2> «ü ¼Ð ÅÜ ¼Æ «Å §i ªº Ãö Áä ¦r ¬° " * " , ¦Ó «ü ¼Ð ÅÜ ¼Æ ªº ¸ê ®Æ «¬ ºA ¤] ¤À ¬° ¾ã ¼Æ ( int ) , ¯B ÂI ¼Æ ( float ) , ¦r ¤¸ ( char ) ¤T ºØ .
<3> §Ú Ì ´¿ ¦b °ò ¥» ¿é ¥X ¤J ¨ç ¼Æ ªº ³¹ ¸` ´£ ¨ì ¦ì §} ¹B ºâ ¤¸ " & " »P ¨ç ¼Æ scanf( ) ·f °t ¨Ï ¥Î , §Ú Ì ª¾ ¹D ¦b ÅÜ ¼Æ «e ¥[ ¤W " & " ²Å ¸¹ ªí ¥Ü ¸Ó ÅÜ ¼Æ ©Ò ¦b ªº ¦ì §} , ¬Û ¹ï ©ó «ü ¼Ð ªº ¥Î ªk , ¨ä ¹ê ¬O «D ±` ¬Û ¦ü ªº . ½Ð °Ñ ¦Ò Example 9-2-1 .

Example 9-2-1 :

#include < stdio.h >
main()
{
int x=10;
int *y;
y=&x;
printf(" x = %d\n", x);
printf("&x = %x\n",&x);
printf("*y = %d\n",*y);
printf(" y = %x\n", y);
}

°õ¦æµ²ªG :

x = 10
&x = ffda
*y = 10
y = ffda

9-2-2 «ü ¼Ð »P ¨ç ¼Æ ¶¡ ªº Ãö «Y
Ãö ©ó ¨ç ¼Æ ©I ¥s ªº ¤è ¦¡ ¤¤ , Call by value ªº ¤Þ ¼Æ ¶Ç »¼ ¤è ¦¡ , ³Q ©I ¥s ¨ç ¼Æ ¤£ ¯à ª½ ±µ §ó §ï ©I ¥s ¨ç ¼Æ ¤¤ ªº ÅÜ ¼Æ , ¦ý ¦p ªG ¬O ¥H «ü ¼Ð ·í §@ ¨ç ¼Æ ªº ¤Þ ¼Æ ( Call by reference ) , «h ¤W z ªº ª¬ ªp §¡ ªï ¤b ¦Ó ¸Ñ , ¦Ó ¥B ¤] ¤£ ¨ü ¨ç ¼Æ ªð ¦^ È ( return ) ¥u ¯à ¦³ ¤@ Ó ªº ¼v ÅT . ½Ð °Ñ ¦Ò Example 9-2-2 .

Example 9-2-2 :

#include < stdio.h >
main()
{
int m=3,n=4;
printf(" m = %d n= %d \n\n",m,n);
change(&m,&n);
printf(" m = %d n= %d \n",m,n);
}

change(x,y)
int *x,*y;
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}

°õ¦æµ²ªG :

m = 3 n= 4

m = 4 n= 3

9-2-3 «ü ¼Ð »P °} ¦C ªº Ãö «Y

§Ú Ì ¾Ç ²ß ¤F «ü ¼Ð 9-1-1 ªº ½Ò µ{ , §Ú Ì ª¾ ¹D ÅÜ ¼Æ «e »Ý ¥[ " & " ²Å ¸¹ ©Î ¨Ï ¥Î «ü ¼Ð ÅÜ ¼Æ ¤~ ¯à «ü ¥Ü ÅÜ ¼Æ ©Ò ¦b ¦ì §} , ¦ý §Ú Ì ¤] ´£ ¨ì °} ¦C ¥» ¨ ¤] ¬O ¤@ Ó ¦ì §} , ©Ò ¥H §Ú Ì ¥i ¥H ±N «ü ¼Ð »P °} ¦C ªº Ãö «Y ¨Ó °µ ¤@ ¹ï ¤ñ . ¨Ò ¦p : ¦³ ¤@ ¾ã ¼Æ °} ¦C ¦W ¬° array , ¨ä °} ¦C ¤j ¤p ¬° ¤ Ó , ¨ä ¤º ®e ¤À §O ¬O 1,2,3,4,5 .

¨Ò¦p :

int array[5]={ 1,2,3,4,5 };

°}¦C¦ì§} «ü¼Ð¬Û¹ï¦ì§}
¢z¢w¢w¢w¢w¢{
array[0] ¢x 1 ¢x *(array+0)
¢u¢w¢w¢w¢w¢t
array[1] ¢x 2 ¢x *(array+1)
¢u¢w¢w¢w¢w¢t
array[2] ¢x 3 ¢x *(array+2)
¢u¢w¢w¢w¢w¢t
array[3] ¢x 4 ¢x *(array+3)
¢u¢w¢w¢w¢w¢t
array[4] ¢x 5 ¢x *(array+4)
¢|¢w¢w¢w¢w¢}

²{ ¦b §Ú Ì ¹ï «ü ¼Ð »P °} ¦C ªº Ãö «Y ¬O ¤£ ¬O ¤w ¸g ¦³ ¤@ ÂI ·§ ©À ¤F ©O ? §Ú Ì ´N ®³ ¥H ¤W ªº ¨Ò ¤l ¨Ó ¹ê °µ ¤@ ¹M , ½Ð °Ñ ¦Ò Example 9-2-3 .

Example 9-2-3 :

#include < stdio.h >
main()
{
int array[5]={ 1,2,3,4,5 };
int count;

for ( count=0 ; count<5 ; ++count )
printf("array[%d]=%d <-----> *\(array+%d\)=%d\n",
count,array[count],count,*(array+count));
}

°õ¦æµ²ªG :

array[0]=1 <-----> *(array+0)=1
array[1]=2 <-----> *(array+1)=2
array[2]=3 <-----> *(array+2)=3
array[3]=4 <-----> *(array+3)=4
array[4]=5 <-----> *(array+4)=5

9-2-4 «ü ¼Ð »P ¦r ¤¸ °} ¦C ( ¦r ¦ê ) ¶¡ ªº Ãö «Y

¦³ ¤F 9-2-3 ªº Æ[ ©À «á , «K «Ü ®e ©ö ¾r ¶¿ ³o Ó ³¹ ¸` . §Ú Ì «Ü §Ö ªº ¨Ó °Ñ ¦Ò Example 9-2-4 ¨Ó ³z µø «ü ¼Ð »P ¦r ¦ê ¤§ ¶¡ ªº Ãö «Y .

Example 9-2-4 :

#include < stdio.h >
main()
{
char string[7]="POINTER";
int count;

for ( count=0 ; count<7 ; ++count )
printf("string[%d]=%c <-----> *\(string+%d\)=%c\n",
count,string[count],count,*(string+count));
}

°õ¦æµ²ªG :

string[0]=P <-----> *(string+0)=P
string[1]=O <-----> *(string+1)=O
string[2]=I <-----> *(string+2)=I
string[3]=N <-----> *(string+3)=N
string[4]=T <-----> *(string+4)=T
string[5]=E <-----> *(string+5)=E
string[6]=R <-----> *(string+6)=R

10-1-2 µ² ºc ªº ¨Ï ¥Î

§Ú Ì ¥i ¥H §Q ¥Î example 10-1-1 ©Î ¬O example 10-1-2 ªº ¤è ¦¡ ¨Ó §@ µ² ºc ÅÜ ¼Æ taipei ªº «Å §i ,·í µ² ºc ÅÜ ¼Æ taipei «Å §i §¹ ¦¨ «á §Y ªí ¥Ü ¨ä ¦¨ û ¥] §t ¤U ¦C ¤» ¶µ :

taipei.id ( ©Î taipei->id )
taipei.name ( ©Î taipei->name )
taipei.age ( ©Î taipei->age )
taipei.sex ( ©Î taipei->sex )
taipei.address ( ©Î taipei->address )
taipei.tel ( ©Î taipei->tel )

²{ ¦b §Ú Ì ¥i ¥H ¹ï ³o ¤» Ó ¦¨ û ¨Ó °µ ¸ê ®Æ ªº ¦s ¨ú ,¹F ¦¨ ¨Ï ¥Î µ² ºc ¨Ó §¹ ¦¨ µ{ ¦¡ ³] p ¤§ ¥Ø ¦a !! Á| ¨Ò example 10-1-3 »¡ ©ú µ{ ¦¡ ¦p ¦ó ±N Áä ½L ¿é ¤J ªº ¸ê ®Æ ©ñ ¤J µ² ºc ¦¨ û ¤¤ ,¦A ±N µ² ºc ¦¨ û ¤§ ¤º ®e ¨q ¦Ü ¿Ã ¹õ :

Example 10-1-3 :

#include
main()
{
struct personal {
char id[10];
char name[8];
int age;
char sex;
char address[20];
char tel[12];
} taipei;

printf("Please input your id : ");
gets(taipei.id);
printf("\nPlease input your name : ");
gets(taipei.name);
printf("\nPlease input your address : ");
gets(taipei.address);
printf("\nPlease input your telephone number : ");
gets(taipei.tel);
printf("\nPlease input your sex ( M or F ) : ");
scanf("%c",&taipei.sex);
printf("\nPlease input your age : ");
scanf("%d",&taipei.age);

printf("\nYour id : %s\n",taipei.id);
printf("Your name : %s\n",taipei.name);
printf("Your age : %d\n",taipei.age);
printf("Your sex : %c\n",taipei.sex);
printf("Your adderss : %s\n",taipei.address);
printf("Your telephone number : %s\n",taipei.tel);

}

°õ ¦æ µ² ªG :

Please input your id : 007
Please input your name : Mike
Please input your address : Taipei
Please input your telephone number : 12345678
Please input your sex ( M or F ) : M
Please input your age : 29

Your id : 007
Your name : Mike
Your age : 29
Your sex : M
Your adderss : Taipei
Your telephone number : 12345678

10-2 ²Õ ¦X ( union )

«Ý Äò !!!!!!!

Example 10-2-1 :

Example 10-2-2 :

10-3 ©w ¸q ·s ªº ¸ê ®Æ «¬ ºA ( typedef )

«Ý Äò !!!!!!!

powered by roth

