C++ 이야기 (열혈)/C언어 기반의 C++ 2

    4. 참조자(Reference)와 함수

    4. 참조자(Reference)와 함수

    Call-by-value & Call-by-reference Call-by-value : 값을 인자로 전달하는 함수의 호출방식 Call-by-reference : 주소 값을 인자로 전달하는 함수의 호출방식 #include using namespace std; void SwapByValue(int num1, int num2) { int temp = num1; num1 = num2; num2 = temp; } // Call-by-value int main(void) { int val1 = 10; int val2 = 20; SwapByValue(val1, val2); // val1과 val2에 저장된 값이 바뀌기를 기대함 cout

    3. 참조자 &(Reference)의 이해

    3. 참조자 &(Reference)의 이해

    참조자의 이해 변수는 할당된 메모리 공간에 붙여진 이름이다 그리고 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다. 할당된 하나의 메모리 공간에 둘 이상의 이름을 부여할 수는 없을까? ==> 참조자의 이해로 이어진다 int num1 = 2010; ==> 2010으로 초기화된 메모리 공간에 num1이라는 이름이 붙게 된다 int* ptr = &num1; // 변수 num1의 주소 값을 반환해서 포인터 ptr에 저장해라! int& num2 = num1; // 변수 num1에 대한 참조자 num2를 선언해라! & 연산자는 C언어 포인터에서 배웠듯이 변수의 주소 값으로 반환하는 연산자였지만 참조자에서는 의미가 또 다르다 이미 선언된 변수의 앞에 이 연산자가 오면 주소 값의 반환을 명령하는 뜻이 되지만, 새..

    2. 새로운 자료형 bool

    2. 새로운 자료형 bool

    '참' 을 의미하는 true와 '거짓'을 의미하는 false #define TRUE 1 #define FALSE 0 #include using namespace std; int main(void) { int num = 10; int i = 0; cout

    1. 시작에 앞서

    1. 시작에 앞서

    키워드 const의 의미 const int num=10; ==> 변수 num이 상수화 const int * ptr1=&val1; ==> 포인터 ptr1을 이용해서 val1 값을 변화시킬 수 없음 int *const ptr2=&val2; ==> 포인터 ptr2가 상수화 const int * const ptr3 = &val3; ==> 포인터 ptr3가 상수화 및 포인터 ptr3을 이용해서 val3 값을 변화시킬 수 없음 실행중인 프로그램의 메모리 공간 데이터 = 전역변수가 저장되는 영역 스택 = 지역변수 및 매개변수가 저장되는 영역 힙 = malloc 함수호출에 의해 프로그램이 실행되는 과정에서 동적으로 할당이 이뤄지는 영역 malloc & free = malloc 함수호출에 의해 할당된 메모리 공간은 fr..