티스토리 뷰
Arrays
One-Dimensional Arrays
■ 배열을 선언하려면 배열의 요소 유형과 요소 수를 지정해야한다. 예를들어, 배열 a에 int 타입의 요소가 10개 있음을 선언하려면 다음과 같이 작성한다. int a[10];
■ 배열의 요소는 모든 타입이 될 수 있다. 배열의 길이는 임의의 (정수)상수 표현식으로 지정할 수 있다. 프로그램이 변경 될 때 배열 길이를 조정해야 할 수 있으므로 매크로를 사용하여 배열 길이를 정의하는 것이 좋다.
#define N 10
int a[N];
■ C에서는 배열 첨자 경계가 올바른지 확인을 요구되지 않는다. 배열 첨자가 범위를 벗어나면 정의되지 않은 프로그램 동작이다.
Array Initialization
■ 다른 변수와 마찬가지로 배열도 선언 된 시점에 초기 값을 제공 할 수 있다.
■ 배열 초기화의 가장 일반적인 형식은 중괄호로 묶고 쉼표로 구분 된 상수표현식 목록이다.
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
■ 초기화가 배열보다 짧으면 배열의 나머지 요소에 값에 0이 지정된다.
int a[10] = {1, 2, 3, 4, 5, 6}; // initial value of a is {1, 2, 3, 4, 5, 6, 0, 0, 0, 0}
■ 초기화가 완전히 비어있는 것은 불법이므로 중괄호 안에 한개의 0을 넣는다. 선언된 배열길이 보다 초기화가 긴 것도 불법이다.
■ 초기화가 있으면 배열 길이를 생략 할 수 있다. int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
컴파일러는 초기화 길이를 사용하여 배열의 길이를 결정한다.
Designated Initializers
■ int a[15] = {[2] = 29, [9] = 7, [14] = 48};
괄호 안의 각 숫자는 지정된 숫자라고 부른다. 요소가 나열되는 순서는 중요하지 않다. 따라서 int a[15] = {[14] = 48, [9] = 7, [2] = 29}와 같이 작성할 수도 있다.
■ int b[] = {[5] = 10, [23] = 13, [11] = 36, [15] = 29};
23이 지정자로 표시된다는 사실은 배열의 길이가 24가 되도록 강제한다.
■ int c[10] = {5, 1, 9, [4] = 3, 7, 2, [8] = 6} // initial value of c is {5, 1, 9, 0, 3, 7, 2, 0, 6, 0}
위 초기화는 배열의 처음 세 요소가 5, 1, 9가 되도록 지정한다. 4번째 요소는 3을 갖는다. 4번째 요소 뒤의 두 요소는 7과 2가 된다. 마지막으로 8번째 요소는 6을 갖는다. 값을 지정되지않은 모든 요소는 기본값 0이 된다.
Multidimensional Arrays
■ 2차원 배열을 테이블로 시각화하지만 실제로 컴퓨터 메모리에 저장되는 방식은 아니다. C는 행 우선순서로 배열을 저장한다.
Initializing a Multidimensional Array
■ 1차원 배열초기화를 중첩하여 2차원 배열에 대한 초기화를 만들 수 있다.
■ 초기화가 다차원 배열을 채울만큼 충분히 크지 않은 경우 나머지 요소에는 값 0이 지정된다.
Varialbe-Length Arrays (C99)
■ C99 에서는 배열 길이에 상수가 아닌 표현식을 사용할 수 있다.
int n;
....
scanf("%d", &n);
int a[j]; // C99 only - length of array depends on n
■ VLA의 길이는 프로그램이 컴파일 될 때가 아닌 프로그램이 실행될 때 계산된다.
- Total
- Today
- Yesterday
- C++게임
- 홍정모의 게임 만들기 연습 문제 패키지
- Codeforces
- 언리얼 자동화
- 브레젠험 알고리즘
- C++게임개발
- pygame
- tetris
- 퀸 움직이기
- BOJ 2365
- opengl
- 숫자판 만들기
- unreal enigne
- 백준
- 코드포스
- BOJ 27469
- Python
- 초등부
- DP
- UE5.3
- ndisplay
- OpenVDB
- 정보올림피아드
- 백준 27469
- 언리얼 프로젝트 재생성
- 백준 2365
- Unreal Engine
- 테트리스
- ICPC 후기
- 언리얼 프로젝트 재생성 자동화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |