오늘은 배열에 대한 수업을 하였다.
배열
- 배열(Array): 순서대로 번호가 붙은 원소들이 연속적인 형태로 구성된 데이터 구조. 쉽게 말해, 변수에 이름을 붙이고 순서대로 번호를 매긴 것과 유사하다.
- 메모리 할당: 배열을 선언하면 특정 크기의 메모리가 연속적으로 할당이 된다. 예를 들어, int arData [5];는 정수형(int) 데이터 5개를 저장할 수 있는 배열을 생성한다.
int arData[5]{};
arData[2];
int arData [5]; : 크기 5의 정수형 배열 생성, 메모리를 잡아줌 (개수 요청)
arData [2]; : 배열의 세 번째 원소에 접근, 인덱스에 접근
- 인덱스는 0부터 카운트를 시작한다.
C++ 배열의 문제점
배열을 사용할 때의 어려운 점 중 하나는 잘못된 인덱스 접근에 대한 안전장치가 없다는 것이다. 예를 들어, 배열의 크기를 벗어난 인덱스에 접근해도 컴파일러가 에러를 발생시키지 않을 수 있고, 이는 잘못된 메모리 접근으로 이어질 수 있으므로 주의가 필요하다.
오늘의 암기 사항
- 배열 = 크기 ( 무조건 크기를 알고 있고 백업을 해둬야 한다 )
배열은 크기를 반드시 알고 있어야 한다. 크기를 모르면 잘못된 동작을 유발할 수 있기 때문이다. (그럼 잘못된 코드이다)
- sizeof 사용에 주의:
sizeof 연산자는 배열의 크기를 구할 때도 사용되지만, 원하는 결과가 나오지 않을 수 있으므로 주의해야 한다. 예를 들어, 포인터를 통해 배열을 전달할 경우 원본 배열의 크기를 알 수 없습니다. (사용하지 말 것)
- C 언어의 배열 사이즈:
C 언어에서는 배열의 크기를 런타임에 구할 수 없습니다. 따라서, 배열의 크기는 별도의 변수로 관리하는 것이 좋습니다.
- C++ 언어 사용 시 주의:
C++에서는 자동으로 처리되는 부분이 많아 편리하지만, 잘못된 결과를 초래할 수 있다. 자동으로 처리되는 기능에 의존하기보다는 명확하게 코드를 작성하는 것이 좋다. ( C언어에서의 자동은 내가 시키지 않은 일을 하고 있구나라고 생각할 것)
- 전처리기 사용 금지:
#define과 같은 전처리기 명령어는 사용을 자제하는 것이 좋다. 대신, 상수를 사용하는 것이 더 안전하다.
- 배열 크기 변경 시 상수를 사용할 것:
배열 크기를 변경하거나 관리할 때는 const 키워드를 사용해 상수로 선언하는 것이 좋습니다.
예시)
const int nLength = 5;
int arData[nLength}{};
for(int i = 0; i < nLength; i++)
{
printf(“%d, arData[i]);
}
'C++' 카테고리의 다른 글
| [강의] 9월 6일 수업정리 (0) | 2024.09.07 |
|---|---|
| [강의] 9월 5일 수업정리 (0) | 2024.09.06 |
| [강의] 9월 3일 수업정리 (1) | 2024.09.04 |
| [강의] 8월 30일 수업정리 (0) | 2024.08.30 |
| [강의] 8월 29일 수업정리 (0) | 2024.08.29 |