Download presentation
Presentation is loading. Please wait.
1
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열
2
Chapter 11-1. 배열의 이해와 배열의 선언 및 초기화 방법
윤성우의 열혈 C 프로그래밍 Chapter 배열의 이해와 배열의 선언 및 초기화 방법 윤성우 저 열혈강의 C 프로그래밍 개정판
3
배열이란 무엇인가? 윤성우의 열혈 C 프로그래밍 다수의 정보를 저장하기 위해서는 다수의 배열을 선언해야 한다.
위와 같이 다수의 변수를 선언해야 하는 경우 매우 번거로울 수 있다. 그래서 다수의 변수선언을 용이하게 하기 위해서 배열이라는 것이 제공된다. 배열을 이용하면 하나의 선언을 통해서 둘 이상의 변수를 선언할 수 있다. 배열은 단순히 다수의 변수선언을 대신하지 않는다. 다수의 변수로는 할 수 없는 일을 배열을 선언하면 할 수 있다. 배열은 1차원의 형태로도 2차원의 형태로도 선언할 수 있다. 이번 Chapter에서는 1차원 형태의 배열에 대해서 학습한다.
4
1차원 배열 선언에 필요한 것 세 가지 윤성우의 열혈 C 프로그래밍 1차원 배열 선언의 예 생성되는 배열의 형태
다양한 배열 선언의 예
5
선언된 1차원 배열의 접근 윤성우의 열혈 C 프로그래밍 실행결과 1차원 배열 접근의 예 일반화
왼편의 예제를 통해서 느낄 수 있는 배열의 또 다른 매력은? 실행결과
6
배열! 선언과 동시에 초기화하기 윤성우의 열혈 C 프로그래밍 초기화 리스트로 초기화 초기화 결과 초기화 값 부족한 경우
부족한 부분 0으로 채워짐 순서대로 초기화 초기화 리스트는 존재하고 배열의 길이정보 생략된 경우 컴파일러가 배열의 길이정보 채움
7
1차원 배열의 선언, 초기화 및 접근 관련 예제 윤성우의 열혈 C 프로그래밍 sizeof 연산의 결과로
배열의 바이트 크기정보 반환 배열의 길이를 계산하는 방식에 주목! 배열이기에 for문을 통한 순차적 접근이 가능하다. 다수의 변수라면 반복문을 통한 순차적 접근 불가능! 실행결과
8
Chapter 11-2. 배열을 이용한 문자열 변수의 표현
윤성우의 열혈 C 프로그래밍 Chapter 배열을 이용한 문자열 변수의 표현 윤성우 저 열혈강의 C 프로그래밍 개정판
9
char형 배열의 문자열 저장과 널 문자 윤성우의 열혈 C 프로그래밍 실행결과 배열에 문자열 저장 저장결과
문자열의 끝에 널 문자라 불리는 \0가 삽입되었음에 주목! 널 문자는 문자열의 끝을 의미한다. 실행결과
10
널 문자와 공백 문자의 비교 윤성우의 열혈 C 프로그래밍
널 문자의 아스키 코드 값은 0이고, 공백 문자의 아스키 코드 값은 32이다. 널 문자는 모니터 출력에서 의미를 갖지 않는다. 그래서 아무것도 출력이 되지 않을 뿐이다.
11
scanf 함수를 이용한 문자열의 입력 윤성우의 열혈 C 프로그래밍 실행결과
scanf 함수를 이용해서 문자열 입력 시 서식문자 %s를 사용한다. scanf(“%s”, str); 위와 같이 배열이름 str의 앞에는 & 연산자를 붙이지 않는다. 실행결과 scanf 함수의 호출을 통해서 입력 받은 문자열의 끝에도 널 문자가 존재함을 확인하기 위한 문장 arr1은 문자열이 아닌 문자 배열, 반면 arr2는 문자열! 널 문자의 존재여부는 문자열의 판단여부가 된다.
12
문자열의 끝에 널 문자가 필요한 이유 윤성우의 열혈 C 프로그래밍 실행결과
문자열의 시작은 판단할 수 있어도 문자열의 끝은 판단이 불가능하다! 때문에 문자열의 끝을 판단할 수 있도록 널 문자가 삽입이 된다. 배열의 시작위치에 문자열이 저장되기 시작한다. 따라서 시작위치는 확인이 가능하다. 하지만 배열의 끝이 문자열의 끝은 아니므로 널 문자가 삽입되지 않으면 문자열의 끝은 확인이 불가능하다. 실행결과 위 예제에서 보이듯이 printf 함수도 배열 str의 시작위치를 기준으로해서 널 문자를 만날 때까지 출력을 진행한다. 따라서 널 문자가 없으면 printf 함수도 문자열의 끝을 알지 못한다.
13
scanf 함수의 문자열 입력 특성 윤성우의 열혈 C 프로그래밍
앞서 보인 왼편의 예제를 실행할 때 다음과 같이 문자열을 입력하면 He is my friend 다음의 실행결과를 보인다. 입력 받은 문자열: He 문자 단위 출력: He scanf 함수는 공백을 기준으로 데이터의 수를 구분한다. 따라서 공백을 포함하는 문자열을 한번의 scanf 함수호출을 통해서 읽어 들이지는 못한다. 공백을 포함하는 문자열의 입력에 사용되는 함수는 이후에 별도로 설명합니다.
14
Chapter 11이 끝났습니다. 질문 있으신지요?
Similar presentations