[C++] Chapter2 전 C 복습

dd_ddong·2022년 7월 8일
0

c++

목록 보기
4/38

키워드 const의 의미

const int num = 10;

  • num변수를 상수화 하여 num값을 변경하지 못함

const int* num = &val1;

  • 포인터 num에 들어갈 주소값은 바꿀수 있지만(num = &another;같이) *num같이 num을 통한 값변경은 불가하다.

int* const num = &val2;
*포인터 num에 들어갈 주소값 변경이 불가하다. *num을 통한 값변경은 가능하다.

const int* const num = &val3;

  • 둘 다 안댐

실행중인 프로그램의 메모리 공간

크게 4가지로 메모리공간을 나눌 수 있다.
1. Code : 실제 코드 text를 담고 있는 공간
2. Data : 전역변수, 정적 변수등 컴파일시 할당되는 데이터를 담고 있는 공간
3. Stack : 지역변수, 매개변수, 함수 호출 등 런타임시 할당되는 데이터 담고 있는 공간
4. Heap : 사용자가 동적으로 데이터를 저장하는 공간 (malloc, new 등으로)

Call by Value, Call by Reference

함수 호출 시 매개변수를 값으로 받으면 함수 호출이 끝나고 변경사항이 없어진다.
참조로 매개변수를 받으면 값복사가 아닌 주소를 통해 값을 변경하므로 호출이 끝나고도 변경사항을 유지할 수 있다.

call by value : void MyFunc(int num);
call by Reference : void MyFunc(int *num);

0개의 댓글