본문 바로가기

Language&Framework&Etc112

C언어 기반의 C++ 2(02-4) 참조자(Reference)와 함수 참조자의 활용에는 함수가 큰 위치를 차지한다. 따라서 함수와 관련해서 참조자를 이야기 Call-by-value & call-by-reference C언어를 공부하면서 배운 함수의 두 가지 호출방식 Call-by-value : 값을 인자로 전달하는 함수의 호출방식 Call-by-reference : 주소 값을 인자로 전달하는 함수의 호출방식 Call-by-value int Adder(int num1, int num2) { return num1+num2; } 두 개의 정수를 인자로 요구. Call-by-value의 형태로 정의된 함수의 내부에서는, 함수외부에 선언된 변수에 접근이 불가능하다. 따라서 두 변수에 저장된 값을 서로 바꿔서 저장할 목적으로 다음과 가팅 함수를 정의하면 원하는 결과를 얻을 수 없다... 2020. 12. 22.
C언어 기반의 C++ 2(02-3) 참조자(Reference)의 이해 참조자(Reference)의 이해 변수 할당된 메모리에 붙여진 이름 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다 "할당된 하나의 메모리 공간에 둘 이상의 이름을 부여할 수는 없을까?" 참조자의 이해를 위해 변수 할당 int num=2020 이 상황에서 다음의 문장을 실행하면, num1이라는 이름이 붙어있는 메모리 공간에는 num2라는 이름이 하나 더 붙게 된다. int &num2 = num1; C에서 배웠듯이 & 연산자는 변수의 주소값을 반환하는 연산자다. 그러나 여기서 & 연산자는 전혀 다른 의미로 사용이 된다. 이미 선언된 변수의 앞에 이 연산자가 오면 주소 값을 반환을 명령하는 뜻이 되지만, 새로 선언되는 변수의 이름 앞에 등장하면, 이는 참조자의 선언을 뜻하는 게 된다. int *ptr .. 2020. 12. 21.
C언어 기반의 C++ 2(02-2) 새로운 자료형 bool bool형은 C언어에는 존재하지 않고, C++에만 존재하는 자료형. 그러나 C의 최근 표준에서는 bool을 기본자료형에 추가 bool형에 대해서 공부 우선 true와 false를 이해해야 함 '참'을 의미하는 true와 '거짓'을 의미하는 false C와 C++ 모두, 정수 0은 '거짓'을 의미하는 숫자로, 0이 아닌 모든 정수는 '참'을 의미하는 숫자로 정의 따라서 참과 거짓의 표현을 위해서 다음과 같이 상수를 정의하는 것이 보통 #define TRUE 1 #define FALSE 1 그러나 C++에서는 참과 거짓을 위한 키워드 true와 false를 정의하고 있기 때문에, 굳이 매크로 상수를 이용해서 참과 거짓을 표현할 필요가 없다. 예제 #include using namespace std; int .. 2020. 12. 20.
C언어 기반의 C++ 2(02-1) 시작에 앞서 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) mallo.. 2020. 12. 20.