C언어의 복습을 유도하는 확인학습
[키워드 const의 의미]
1) const int num=10;
→ 변수 num을 상수화
2) const int* ptr1 = &val1
→포인터 ptr1을 이용해서 val1의 값을 변경할 수 없음
3) int* const ptr2 = &val2;
→ 포인터 ptr2가 상수화 됨
4) const int* const ptr3 = &val3;
→ 포인터 ptr3가 상수화 되었으며, ptr3을 이용해서 val3의 값을 변경할 수 없음
[실행중인 프로그램의 메모리 공간]
1) 데이터 : 전역변수가 저장되는 영역
2) 스택 : 지역변수 및 매개변수가 저장되는 영역
3) 힙 : malloc 함수호출에 의해 프로그램이 실행되는 과정에서 동적으로 할당이 이뤄지는 영역
4) malloc&free : malloc 함수에 의해 할당된 메모리 공간은 free 함수호출을 통해서 소멸하지 않으면 해제되지 않는다.
[Call-by-value vs. Call-by-reference]
void swapbyvalue(int num1, int num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
// call-by-value
}
void swapbyref(int * ptr1, int * ptr2)
{
int temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;
// call-by-reference
}
참고 : [윤성우 열혈 C++ 프로그래밍] - 대부분의 내용 및 코드는 이 책에서 개인 공부 정리 목적으로 참고하였습니다.
'Language&Framework&Etc > C++' 카테고리의 다른 글
C언어 기반의 C++ 2(02-3) 참조자(Reference)의 이해 (0) | 2020.12.21 |
---|---|
C언어 기반의 C++ 2(02-2) 새로운 자료형 bool (0) | 2020.12.20 |
C언어 기반의 C++(01-5) 이름공간(namespace)에 대한 소개 (0) | 2020.12.20 |
C언어 기반의 C++(01-4) 인라인(inline) 함수 (0) | 2020.12.20 |
C언어 기반의 C++(01-2) 함수 오버로딩(Function Overloading) (0) | 2020.12.19 |