일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- /
- 도커 #docker #docker-compose.yml #도커컴포즈 #배포 #spring #mysql #docker-compose
- 도커 #Docker #배포 #Spring #MySQL #백엔드배포
- chatgpt #gpt #챗지피티 #ai
- Today
- Total
개발자 데뷔!
[C/C++ 3.2] 1차원 배열 초기화 본문
* 배열 초기화 방법 간단히 한번에 정리 !!!!! **************
1차원 배열 초기화
숫자 0 으로 초기화하기
int arr[4] = {};
int arr[4] = {0};
int arr[4] = {0,0,0,0};
'0 이 아닌 다른 수'로 초기화 하기
* '0 이 아닌 다른 수'로 배열의 모든 요소를 한번에 초기화 하는 방법은 없다!!
* ex) int arr[] = {4}; 와 같은 방식으로 arr[] 배열의 모든 요소값을 숫자 4로 초기화 할수는 없다!!!
- 다음과 같은 방식으로, for문 등을 활용해 요소 하나하나에 접근해 값을 넣어주어야 한다.
int arr[4];
for (int i = 0; i < 4; i++) {
arr[i] = 5;
}
모두 다른 수로 초기화 하기
int arr[4] = {3,1,2,5};
int arr[] = {3,1,2,5};
- 아래 코드처럼, arr의 size를 [ ] 안에 지정하지 않고 비워두더라도,
우변에서 정의한 배열의 크기에 맞게 자동으로 size가 설정된다.
(* 물론 배열의 모든 요소를 하나하나 직접 정의한 이 같은 경우에만 가능하다)
char 문자로 초기화하기
char arr[3] = { 'm','i','n' };
- 작은 따옴표로 한 글자씩 입력
마지막 index에 접근
arr[-1]
=> arr의 주소 + sizeof(int) * -1 의 위치에 접근한다.
* '0 이 아닌 다른 수'로 배열의 모든 요소를 한번에 초기화 하는 방법은 없다!!
* ex) int arr[] = {4}; 와 같은 방식
배열의 빈자리
- 초기화 후 값을 입력하지 않은 배열의 남은 자리에는,
NULL값이 아닌 [쓰레기값]이 채워져 있다!
- 즉, 값이 들어간 위치를 찾을 때, !=NULL로 찾으면 안됨
- 즉, arr[3] = {0} 이라도 사용해 빈 곳을 NULL값으로 채워주는 것이 좋다.
- NULL로 배열을 채워놓는다면, 다음과 같은 조건문( == NULL)에서
NULL / 0 / \0 을 모두 똑같이 NULL로 받아들인다.
// 배열의 빈자리 2
if (arr[i][j] == NULL) // 그런데 여기 조건문 쓸 땐, NULL이든, 0 이든, \0이든, 똑같이 옳게 받아들임
cout << 0;
else
cout << arr[i][j]; // 0이 아닌 NULL로 채워놨기 때문에, 이것만 쓰면 빈칸은 출력 안됨
즉, arr[] = {} 으로 초기화를 해줘야지만
다음과 같은 조건을 걸었을 때, break문이 정상작동 될 수 있다
if (arr[idx] == '\0')
break;
'프로그래밍 언어 > C' 카테고리의 다른 글
[C/C++ 3.4] 2중 for문 마스터 (2차원 배열 접근하기) (0) | 2022.03.11 |
---|---|
[C/C++ 3.3] 2차원 배열 초기화 (0) | 2022.03.11 |
[C/C++ 3.1] 다중 루프(for)문 탈출방법 (0) | 2022.03.10 |
[C/C++ 3.0] for문 마스터 (0) | 2022.03.10 |
[C/C++ 1.8] 연산자 sizeof (0) | 2022.03.10 |