이중포인터 2

[ C ] 10. 함수와 포인터

[ 함수와 포인터 ] void 포인터 매개변수 사용하기 void 포인터 매개변수를 사용하면 자료형 변환을 하지 않아도 모든 자료형을 함수에 넣을 수 있다. 이번에는 char, int, float형을 매개변수로 받아서 값을 서로 바꿔보겠다. #include enum TYPE { TYPE_CHAR, TYPE_INT, TYPE_FLOAT }; void swapValue(void *ptr1, void *ptr2, enum TYPE t){ switch(t){ case TYPE_CHAR:{ // 문자면 char *로 변환한 뒤 역참조하여 값을 서로 바꿈 char temp; temp = *(char *)ptr1; *(char *)ptr1 = *(char *)ptr2; *(char *)ptr2 = temp; break..

[ C ] 00. 함수 호출방식

[ 함수 호출방식 ] Call-by-value 값에 의한 호출 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된다.(c++의 경우 stack frame) => 함수가 종료되면 해당 공간은 사라진다. 스택 프레임(Stack Frame) : 함수 호출시 할당되는 메모리 블록(지역변수의 선언으로 인해 할당되는 메모리 블록) call-by-value 값에 의한 호출방식은 함수 호출 시 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 지역적으로 사용되는 local value의 특성을 가진다. 따라서 함수 안에서 인자의 값이 변경되어도, 외부의 변수의 값은 변경되지 않는다.!! 장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단..