C하부 객체를 이용하여 배열을 선언한다. 추후 프레임워크에서 제공하는 NSArray객체는
훨씬 다루기 쉽고 편하게 설계된 객체이다.
C에서 제공하는 배열은 객체에 []를 사용하여 배열의 길이를 정하고
해당 객체 타입만을 담을 수 있다.
한번 정해진 배열의 길이는 런타임 중 확장이 불가능 하다.
만약 확장한다면 가끔 정확히 값이 들어가지만 대부분 값이 잘못 들어가게 된다.
따라서 런타임 중 초기화 하고 싶으면 []와 값을 다시 초기화 하면 된다.
배열의 길이를 정하지 않고 {}를 사용하여 초기화 하면 자동으로 배열의 길이가 정해진다.
//길이 10개의 int를 담을 수 있는 배열을 선언
int intAry[10];
int i=0;
for( i=0; i<10; i++ ){
intAry[ i ] = i*2;
}
for( i=0; i<10; i++ ){
NSLog(@"intAry[%i] = %i" , i, intAry[i] );
}
//길이 5개인 char 배열생성 및 값 초기화(설정)
char letters[5] = {'a','b','c','d','e'};
for( i=0; i<10; i++ ){
NSLog(@"letters[%i] = %c" , i, letters[i] );
}
//////배열 크기 확장
letters[10];
for( i=5; i<10; i++ ){
letters[ i ] = letters[ i-5 ];
}
for( i=0; i<10; i++ ){
NSLog(@"letters[%i] = %c" , i, letters[i] );
}
//배열길이 무작위 초기화
float floatAry[] = { [7] = 5.7 , [4] = 10.3, [12] = 55.2 };
for( i=0; i<13; i++ ){
NSLog(@"floatAry[%i] = %f" , i, floatAry[i] );
}
//{}에 다라 설정된 배열의 길이
char word[] = {'H','e','l', 'l', 'o', '!'};
NSLog(@"word : %s",word);
for( i=0; i<6; i++ ){
NSLog(@"word[%i] = %c" , i, word[i] );
}
//null값인 \0을 대입하여 문자열을 만듬
char word2[] = {'H','e','l', 'l', 'o', '!', '\0'};
NSLog(@"word2 : %s",word2);
/////2차원 배열 설정 : 배열의 길이와 초기화
int int2DepthAry[3][5] = {
{1,3,5,7,9},
{12,56,89,34,67},
{4,13,5,32,24}
};
int j = 0;
for(i=0; i<3; i++){
for(j=0; j<5; j++){
NSLog(@"int2DepthAry[%i][%i] : %i", i , j , int2DepthAry[i][j]);
}
}
/////2차원 배열 불규칙 설정 : 선언되지 않은 곳은 0으로 초기화, 문자 배열은 ''으로 초기화
int int2DepthAryB[3][6] = {
{1,3,5,7},
{12,56,89,34,6,38},
{[0]=5, [4]=32, [5]=24}
};
for(i=0; i<3; i++){
for(j=0; j<6; j++){
NSLog(@"int2DepthAryB[%i][%i] : %i", i , j , int2DepthAryB[i][j]);
}
}