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