C - 배열
0x0300 : Study/0x0304 : Programming배열?
각 저장 곤간을 이름과 index로 구분.
메모리에 저장 공간 한꺼번에 확보.
사용할 때는 하나씩 떼어 쓰는 방식으로 구현
선언과 초기화 그리고 요소의 사용
선언 - int ary[5];
초기화 - int ary[5] = {1, 2, 3, 4, 5};
요소 사용 - ary[0], ary[1], ary[2], ary[3], ary[4]..
배열의 기본적인 예시이다.
int a, b, c, d, e; 를 예시로 들어보자.
여기서는 a , b , c .. 각각의 변수에 4바이트씩 공간이 주어져 있다.
int ary[5]; 는
메모리에 공간이 연속적으로 20바이트가 할당되어 있다.
배열의 초기화
최초 할당된 저장 공간에는 쓰레기값 존재.
// 배열이 선언과 동시에 원하는 값 갖도록 하려면 초기화.
배열은 중괄호로 묶어서 초기화
// 반드시 선언과 동시에 초기화
// 선언하고 난 후에 값 저장하려면 배열 요소에 하나 씩 값 대입
배열과 반복문
배열은 같은 형태의 변수가 많이 필요할 때 쉽게 저장 공간 할당, 초기화 가능한 장점 가짐
모든 배열 요소를 일일이 하나씩 사용하는 것은 번거로움
성적 처리 프로그램을 예시로 반복문과 배열을 조합한 코딩을 할 수 있다.
위에서 보면 알 수 있는데
for (int i = 0; i < 5; i++)
{
printf("%5d\n", score[i]);
}
에서 for에서의 i는 score의 i 를 배열의 첨자로 활용 가능하다.
Sizeof 연산자를 활용한 배열 처리
배열은 보통 많은 양의 데이터 처리
// 반복문 사용 필수
배열 요소 수가 바뀌는 경우?
// 배열 처리 반복문을 모두 수정해야 하는 부담
// 배열 요소 수를 직접 계산 하여 반복문에 사용하면 편리
배열 요소 수 = sizeof (배열명) / sizeof (배열 요소)
sizeof 연산자를 사용한 배열의 예시이다.
cnt = sizeof(score) / sizeof(score[0]);
cnt는 배열 요소 수 (5) 가 되고 score은 배열 전체 크기인 20바이트 이며 배열 요소 하나의 크기는 score[0]이 4바이트로 주어진다.
char 형 배열선언과 초기화
문자열은 문자의 연속
// 문자열 저장할 때는 char형 배열 사용
가장 기본적인 예시이다.
문자열 끝에 널 문자가 없는 경우가 있다
이러한 경우는 쓰레기 값을 문자열로 출력 하기도 한다...
이처럼 뒤에 빈공간이 있다면 글자가 이상한 쓰레기 값이 출력 되는 것을 확인 할 수 있다.
// 물론 테스트는 하지 않았습니다 ^ㅡ^...
문자열 대입
char형 배열은 문자열 저장하는 변수의 역할을 한다.
// 초기화 된 이후에도 새로운 문자열 저장이 가능
// 문자열의 길이가 다를 수 있음
strcpy함수를 활용한 문자열 대입하는 배열 예제이다.
문자열 입출력 함수로 gets, puts가 있다.
'0x0300 : Study > 0x0304 : Programming' 카테고리의 다른 글
Cpp 기초 (A+B 응용화) (0) | 2017.05.24 |
---|---|
NASM - LD 컴파일 후 실행 (0) | 2017.05.13 |
C - 배열과 포인터 (0) | 2016.06.14 |
C - 포인터 (0) | 2016.06.13 |
C - 함수 (0) | 2016.06.13 |