c++

C++ 개인 필기(5) 포인터 및 참조

Voitcon 2024. 1. 24. 18:20

포인터 * 참조 & 성능은 같다.

편의성 : 참조>포인터

포인터를 주소를 넘긴다는게 티가 나지만 참조는 아니다.

CONST를 사용해서 수정을 안한다는것 꼭 표기 (참조에서) , 읽기 전용일 때

포인터의 CONST는

const int* ptr -> ptr이 가리키고 있는 가방의 내용물을 바꾸지 못함

int* const info -> 주소값을 고치지못함 (주소값 고정)

 

참조 -> 별칭 -> 참조하는 대상이 없으면 초기화안됨

참조 사용시 -> define OUT -> func(OUT int& ref)

포인터로 사용하던걸 참조로 넘길려면? -> ByRef(*ptr)

참조를 포인터로 -> BYPTR(&REF)

 

배열

비주얼 스튜디오 기준 -> 배열은 상수여야한다. gcc는 아니다.

배열의 이름은 배열의 시작주소(시작위치를 가리키는 TYPE* 포인터)

포인터와 참조는 자유자재로 변환이 가능함.

 

문자열 저장시 포인터는 아무리 문자가 많아도 8바이트 (64비트)

배열은 문자가 12개면 CHAR(12바이트)

배열을 매개변수로 넘길시 배열의 시작주소인 포인터로 넘긴다 (자동변환)