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 ] ;
¢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¢}
int score[5]={ 1, 2, 3 ,4 ,5 };
main() { int score[5]; /* °}¦C«Å§i */ . . score[0]=1; /* µ{¦¡¥»Åé */ score[1]=2; score[2]=3; score[3]=4; score[4]=5; . . }
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 ] ;
¦æ (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¢}
int score1[2][5]={{ 1, 2, 3, 4, 5 },{ 5, 4, 3, 2, 1 }};
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; . . }
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 ] ;
¨Ò¤@ : 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" };
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¤¤ */ . . }
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);
ÅܼƸê®Æ«¬ºA *ÅܼƦWºÙ ; ¨Ò¦p: int *p ;¥Ñ ¥H ¤W ªº «Å §i , ªí ¥Ü ¤F ¤T ¥ó ¨Æ [1] p ¬° «ü ¼Ð ÅÜ ¼Æ . [2] p ¥N ªí ¤@ Ó ¦ì §} , ¦Ó *p ¥N ªí ¦¹ ¦ì §} ªº ¸ê ®Æ . [3] p ©Ò «ü ¦V ¦¹ ¦ì §} ¤§ ÅÜ¼Æ «¬ ºA ¬° ¾ã ¼Æ ( int ) .
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¢}
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