char형 1차원 배열을 선언과 동시에 다음 문장 내용으로 초기화하고 초기화 이후에는 저장된 내용을 출력하는 예제다.
Good time
11-2번을 처음 푼 오답풀이이다. 서식 문자 % c가 char형과 함께 쓰이며, 문자의 형태로 데이터를 출력또는 입력하라
라는 의미를 가진다.
기본 자료형 변수들이 선언과 동시에 초기화하는 것처럼! 배열도 가능하다!
배열의 초기화 방법은 총 세가지이다.
1. int arr [3] = {1,2,3}; //순차적으로 1 2 3을 초기화한다. cf) 중괄호로 묶인 부분을 초기화 리스트라고 한다.
2. int arr [ ] = {1,2,3,4,5}; //컴파일러에 의해서 자동으로 5가 삽입이 된다. 이문장에서 볼 수 있듯이 초기화를 목적으로 초기화 리스트가 선언되면 배열의 길이 정보를 생략할 수 있다. 즉 위 문장은 int arr [5] = {1,2,3,4,5}; 와 동일하다.
3. int arr [5] = {1,2}; //3,4,5번째 배열 요소는 0으로 채워진다.
배열의 길이 계산
int arr1 [5]={1,2,3,4,5};라 할 때, 배열 arr1의 크기는 sizeof(arr1) = 20이다. 즉 배열의 이름을 대상으로 하는 sizeof연산의 결과로는 '바이트 단위'의 배열 크기가 반환이 된다.
배열의 크기가 아닌 길이를 계산하고자 한다면,
arr1 Len = sizeof(arr1) / sizeof(int); 이와 같은 문장이 필요하다. 배열 arr1의 길이를 계산하는 문장이다.
arr1 Len = 5가 될 것이다.
배열에서의 길이?
1차원 배열의 선언에 필요한 세 가지는 배열 이름, 자료형, 길이 정보이다.
즉 int sentence [4];의 문장이 있다면
int는 배열을 이루는 요소(변수)의 자료형.
sentence는 배열의 이름
[4]는 배열의 길이를 뜻한다.
즉 배열의 길이 계산을 통해 [ ]의 부분을 알 수 있다.
다양한 자료형의 배열.
int sentence [4]; // 길이가 4인 int형 1차원 배열 sentence
float sentence2 [7]; //길이가 7인 float형 1차원 배열 sentence2
double sentence3 [12]; //길이가 12인 double형 1차원 배열 sentence3
선언된 1차원 배열의 접근
int arr [3]; //길이가 3인 int형 1차원 배열 arr이다.
위의 배열을 대상으로 값을 저장할 때는 밑에 형태로 접근한다.
arr [0]=10; //배열 arr의 첫 번째 요소에 10을 저장해라!
arr [1]=12; //배열 arr의 두 번째 요소에 12를 저장해라!
arr [2]=14; //배열 arr의 세 번째 요소에 14를 저장해라!
arr [1] 이 길이가 1인 배열일까, 배열에서 두 번째 요소의 값을 나타내는 것 일까라는 혼동이 있었는데 위의 개념 정리로 바로 잡을 수 있었다.
int arr [1]; //길이가 1인 int 형 배열 arr
arr [1] = 10; // 배열 arr의 두 번째 요소에 10을 저장.
다시 돌아와 11-2의 문제에서. 초기화 이후에 저장된 내용을 출력하라라고 하였는데, 나는 반복문을 통해 배열에 저장된 값을 출력할 것이고, 그러면 for문에서 조건식이 필요하다. 이 조건식은 i = 0일 때 (i <배열의 길이) 같은 꼴이 되어야 한다. 왜냐하면 배열 요소들의 개수는 배열의 길이와 같기 때문에 배열의 길이를 구해주는 것이다.