본문 바로가기
C++/한 줄 정리

벡터에서 음수 인덱스도 접근은 가능하다

by tokkiC 2022. 6. 22.

기본적으로 음수 인덱스는 벡터 앞의 부분을 가리킨다

인덱스 0으로부터 인덱스 번호*자료형 크기 만큼의 앞의 메모리를 주소값으로 가지고 값으로 쓰레기값을 가지고 있다

쓰레기 값을 가지지만 더하기 빼기 등등 요소의 기본적인 연산은 가능하다

하지만 쓰레기값을 가지고 다루는 것이기에 값은 계산해도 쓸수가 없다 초기 값이 쓰레기 값이므로...

하지만 그 음수 인덱스를 초기화한다면, 그 음수 주소값이 가리키는 값은 우리가 초기화한 값을 가리켜서

실제로 계산이 가능하고 원하는 대로 사용이 가능하다

예를 들어 인덱스 0 -1  에 접근해서 그 값을 ++하는 코드가 있다면,

-1인덱스의 값을 따로 a[-1]=4  처럼 초기화했다면 인덱스 -1에도 연산이 적용 될 것이고,

초기화 하지 않았으면 쓰레기값++ 이니 의미없는 값은 되나 딱히 에러는 나지 않을것이다

벡터에서 음수 인덱스까지 연산이 적용된다고 쫄지말자 어차피 걔들 값은 필요없고 에러는 안나니까!

아 배열은 범위 밖이니 에러난다! 조심하자!

댓글