Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 알기쉬운 알고리즘
- Selection Sorting
- Graph
- Stack
- 이스케이프 문자
- list 컬렉션
- C programming
- datastructure
- Algorithm
- Serialization
- buffer
- stream
- 윤성우 열혈자료구조
- 혼자 공부하는 C언어
- 윤성우의 열혈 자료구조
- C 언어 코딩 도장
- s
- R
- coding test
- JSON
- 이것이 자바다
- 메모리구조
- insertion sort
Archives
- Today
- Total
Engineering Note
[C] 배열 본문
배열 사용 이유
- 같은 형태의 많은 데이터를 선언할 경우 사용한다.
- 배열을 사용하면 반복문을 사용하기 용이하다.
- C언어로 학생 100명의 성적 평균을 구할 경우 성적값을 저장할 float 또는 int 타입의 변수를 100개를 선언하고 모두 더한 뒤 학생 수로 나눌 경우를 생각해보면 모두 더하는 것도 쉽지 않을 뿐 아니라 변수 선언도 쉽지 않다. 하지만 배열을 사용하면 쉽게 변수를 선언하고 반복문을 통해 합을 구하는 것도 쉽다.
배열의 선언
- 자료형 배열명[크기];
- 자료형 배열명[크기] = {값, 값, 값};
- int numArr[10]={11,22,33,44,55,66,77,88,99,110};
- 크기가 10인 int형 배열을 선언 한다는 뜻
- 배열을 선언하면서 값을 초기화할 때는 {}안의 값 개수는 배열의 크기보다 작아도 되지만 크면 안된다.
- {}를 사용하여 배열에 값을 할당하는 방법은 배열을 선언할 때만 사용할 수 있으며 이미 선언된 배열에는 사용할 수 없다.
배열의 초기화
- 배열도 변수와 바찬가지로 최초 할당된 저장 공간에는 쓰레기 값이 저장되어 있다. 그렇기 때문에 배열도 원하는 값을 가지려면 선언과 동시에 초기화를 해야 한다.
- int arr[15] = {1,2,3,4,5};
- 가장 기본적인 초기화 방법, 선언과 동시에 {}로 묶어서 초기화
- int arr[5] = {1,2,3};
- 초기값이 배열 요소 개수보다 적은 경우
- 왼쪽부터 차례로 초기화 하고 남은 배열 요소는 모두 0으로 채운다.
- 0번 인덱스, 1번 인덱스, 2번 인덱스는 1,2,3으로 초기화 되고 3번 인덱스 4번 인덱스는 모두 0으로 자동 초기화된다.
- int arr[1000] = {0};
- 자동 초기화 기능을 사용하면 배열 요소 개수가 아무리 많아도 모든 요소를 쉽게 0으로 초기화할 수 있다.
- int arr3[] = {1,2,3};
- 배열 요소 개수가 생략된 형태
- 배열을 선언할 대 값을 초기화한다면 배열의 크기를 생략할 수 있다.(초기화를 하지 않을 때는 생략할 수 없다.)
- 이 경우 컴파일러는 초기값 개수만큼 배열 요소 개수를 정하고 저장 공간을 할당.
- arr3은 크기가 3인 배열이고 arr[3] (4번째 인덱스)는 존재하지 않는고 접근 할 수 없다.
배열 요소에 접근하기
- 배열에 값이 저장된 공간을 요소(element)라고 한다.
- 배열에서 각 요소에 접근하려면 배열 뒤에 [](대괄호)를 사용하며 []안에 각 요소의 인덱스를 지정해주면 된다.
- 배열[인덱스]
- numArr[0]; // 첫 번째 요소, 인덱스 0
- numArr[5]; // 여섯 번째 요소 인겍스 5
- 주의할 점은 배열의 인덱스는 항상 0부터 시작한다는 점이다. 따라서 배열 numArr의 첫 번째 요소는 numArr[0]이 된다.
배열의 크기 구하기
- sizeof(배열명)/sizeof(요소의 크기) // 배열의 크기
- sizeof(배열명); //배열이 차지하는 전체 공간의 크기
배열과 포인터
- 배열의 이름도 포인터이므로 인덱스가 0부터 시작하면 요소접근과 포인터 연산이 일치한다.
-------------------------------------------------------------------------------------------------------------
출처 : 혼자 공부하는 C언어, C언어 코딩도장
'Programming Language > C programming' 카테고리의 다른 글
| [C] 구조체 포인터 사용하기 (0) | 2021.03.03 |
|---|---|
| [C] Struct 구조체 (0) | 2021.02.24 |
| [C] 16-1 동적 할당 함수 (배열처럼 사용하기) (0) | 2021.02.12 |
| [C] 16 -1 동적할당함수 (0) | 2021.02.12 |
| [C] temp 없이 Swap 하는 방법 (0) | 2021.01.31 |
Comments