C++

[강의] 9월 4일 수업정리

k-codestudy 2024. 9. 5. 02:47

오늘은 배열에 대한 수업을 하였다.

배열

  • 배열(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