배열
배열의 개념 복수의 동일한 형의 변수를 묶은 것. 배열의 선언 int a[4]; // a: 배열명, 배열의 시작주소 배열의 개념 복수의 동일한 형의 변수를 묶은 것. 배열의 선언 int a[4]; // a: 배열명, 배열의 시작주소 4: 배열의 크기 (요소의 수) 즉, 위와 같이 배열이 선언되면, 4개의 배열요소 a[0] a[1] a[2] a[3] 가 메모리에 생성된다. 0 ~ 3 은 첨자로 인덱스 번호라 한다.
배열의 사용 배열의 초기화 배열 요소의 참조와 대입 배열 범위 밖 오류 int a[4] = {1, 2, 3, 4}; // [ ]안의 요소 수 생략 가능 배열 요소의 참조와 대입 a[0]=1, a[3]=10; // 배열 요소 대입 printf(“%d”, a[3]); // 배열 요소 참조 배열 범위 밖 오류 int a[4]={1, 2, 3, 4}; printf(“%d”, a[4]);
실 습 키보드로부터 5개의 정수를 입력 받아서 배열에 저장하세요. 그리고, 이들의 합계와 평균을 출력하세요. 입력예: 정수(5개) > 5 12 9 19 2 출력예: 합계 : 47 평균 : 9.40
배열의 장점 배열내의 특정 데이터에 첨자를 이용해서 빠르게 접근할 수 있다. 메모리 상에서 시작부터 종료까지 연속된 공간에 동일한 자료형으로 할당되므로 거리계산에 의해 해당위치에 직접 접근할 수 있다. 정적인 데이터 처리에서 기억장소를 효율적으로 활용할 수 있다. 배열을 구성하는 데이터 이외에 다른 정보를 저장할 필요가 없기 때문에 삽입,삭제가 없는 경우 기억장소를 효율적으로 활용할 수 있다.
배열의 단점 배열내의 특정 위치에 데이터를 삽입하거나 삭제할 경우 많은 작업을 필요로 한다. 삽입,삭제 시 그 이후에 있는 배열 요소를 모두 이동시켜야 하며, 이는 처리속도에 영향을 준다. 배열의 크기를 최대로 선언해야 한다. 이미 할당된 저장공간은 다른 용도로 사용할 수 없으며, 실제로 메모리 측면에서 비효율적이다.
문자열 문자열 대입 문자열 상수 char형 배열을 저장 공간으로. 문자열의 끝 표시는 NULL문자로 (‘\0’ ). char s[10]; 문자열의 끝 표시는 NULL문자로 (‘\0’ ). s[0]=‘H’, s[1]=‘a’, s[2]=‘\0’; 문자열의 참조는 시작주소로. printf(“%s\n”, s); 문자열 상수 “Hello”
문자열 함수 구현 strlen( )를 구현하시오. strcpy( )를 구현하시오. int i = 0; char srt[ ] = “life”; // strlen( )의 구현 while( str[i] != ‘\0’) { i++; } printf(“%s의 길이 = %d\n”, str, i); strcpy( )를 구현하시오.
다차원 배열 2차원 배열 int a[2][3];
실습. 2차원 화면표시 아래 화면에 표시된 결과와 같이 출력되도록, 규칙성을 찾아 10x10 2차원 배열과 제어문을 활용하여 프로그래밍하시오.
실습 배열의 단점 이해 배열 요소의 삽입 및 삭제 교재 예제 p107
End