본문 바로가기
C++

210525_9일차(Const, 포인터, 문자열)

by geniee_1 2021. 5. 25.
728x90

1. Const ( 상수화 : 값을 외부에서 임의로 바꿀수 없게 한다 )

2. const 포인터 활용

- const는 포인터에 붙어있음, 따라서 포인터를 이용하여 변경은 불가능함, 변수 값은 상관없이 바꿀수 있다. 

 

*예시는 int (4byte), 포인터는 64비트 기준 (8byte)라서 약간 의미 없지만

- 넘겨받는 변수가 구조체거나 용량이 큰 변수일땐 효율을 위해서 주소를 넘겨주고 함수에서 그 주소에 직접 접근할수있게하자

    => 주소에서 값만 읽어오고 변경은 할 수 없도록 const 포인터로 받아오기

 

3. void*

- 원본의 형태를 정하지 않은 상태, 어떤 변수의 주소값이든 다 받아 올 수 있음

- 역참조 불가능, 주소 연산 불가능  (이유? 원본의 형태를 알 수 없기 때문이다.)

4.문자열 

_다시 들어보기

- 아래 pChar[1] 이 경우 저 값이 복사되어 들어있는 배열이 아니라 저 값의 주소를 직접 접근하는 상황이다. 실행중에 코드가 바뀔 수 없기 때문에 const 포인터를 이용하여 수정 할 수 없게  함

 

 

다시한번 기억하기 
메모리 구조
1. 힙
2. 스택 
3. 데이터
4. 읽기 전용 ( Read Only Memory _ ROM, 코드 영역)