목록2024/03/10 (4)
Minwoo Dev.
C언어에서는 동적 할당을 위해 malloc, free를 사용했다. #include using namespace std; char *MakeStrAdr(int len) { char *str = (char *)malloc(sizeof(char) * len); return str; } int main(void) { char *str = MakeStrAdr(20); strcpy(str, "Hi !! I am Minu!!"); cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bENN8C/btsFEX3UcHS/NS57u0LD9maz88Xhaa3E60/img.png)
const 참조자 #include using namespace std; int main(void) { const int num = 10; // 변수같아 보이지만 상수. 정확히는 상수화된 변수 int &ref=num; // 상수화된 const 값을 참조 불가, 변수만 참조가능 num+=10; // const 값은 변경불가! return 0; } 위 코드는 num이라는 변수를 const를 사용하여 변경할 수 없도록 만들었다. 그리고 그 값을 ref가 참조하여, ref를 통해 num을 변경하고자 한다. 위 코드는 오류가 발생한다. 실행이 된다면 num 을 const로 선언한 이유가 없을 것이다. 이럴 때, const 참조자를 사용한다. #include using namespace std; int main(vo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oe7Ki/btsFFSBt5zM/oleXywuUHdRfVsmjzZ5jj0/img.png)
참조자를 이용해서도 포인터를 사용하는 것처럼 Call-by-reference 형식의 함수를 만들 수 있다. Call-by-reference 함수 외부의 값을 받아와 함수 내부에서 값을 변경할 수 있는 형태 C언어에서는 포인터를 사용하여 함수 외부의 값을 함수 내부에서 변경할 수 있었다. 우선, 포인터를 이용한 기존의 방식부터 살펴보자. 포인터를 이용한 Call-by-reference 함수 #include using namespace std; void Swap(int *n1, int *n2) { int temp = *n1; *n1 = *n2; *n2 = temp; } int main(void) { int num1 = 3, num2 = 5; cout