CPP_어소_32_포인터 const 예시

CJB_ny·2022년 6월 21일
0

CPP_AROTHO

목록 보기
30/83
post-thumbnail

말도 안되게 큰 타입이라 치자

main함수위에 큰 자료형의 함수를 계속 호출해야 하는 상황이라면

이것을 "복사"를 계속 하고 해제도 하니까 "비용"이 존나게 들어간다

=> performance존나 떨어짐

그러니까 인자로 받아올 때 주소를 받아오면 되지 않나?

그 주소로 그냥 계산, 처리를 하고 해제 하면 굿?

읽어오기만을 바랬던거 아닌가?

왜 주소를 줬드만 값을 바꿔 놨노??

이런 문제가 발생할 수 있다.

그러면 1. 포인터 const, 2. const 포인터

  1. 포인터 const를 사용해서

엄청큰 데이터를 받는 함수에 인자에 (const 엄청큰 데이터 타입* value)
이렇게 받아서 value에 접근을 해서 값을 바꿀 수 없게 해주어야 할듯?

이렇게 값을 가져와서 Output의 지역변수에 할당하거나 하는건 OK

그런데 수정같은거 하는것은 안됨.

찜찜할때

주소를 넘겨주는데 찜찜하다. 나중에 라이브러리 전방선언 밖에 못보기 때문에

ctrl + shift + space 하면 함수 선언이 뜬다.

const int* p 인자로 받는다 == 원본데이터를 읽어 들이기만 할게요. 원본은 수정 안할 게요.

근데 다 바꾸는 방법이 존재

const int pI를 받아 온 것을 int 로 캐스팅 해주면

바뀐다.

절대 못 바꾸는게 아니라 의도를 비춘거임.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글