목록pointer (2)
주소에 의한 인수 전달 (Call by Address) 함수에 변수를 전달할 수 있는 또 다른 방법이 있는데, 주소를 사용하는 것이다. 인수가 주소이기 때문에 함수 매개 변수는 포인터다. 함수는 가리키는 값에 접근하거나 변경하기 위해 포인터를 역참조 할 수 있다. 간단한 예제로 살펴보자 이번에는 파라미터가 포인터다! main에서 함수를 호출할 때 그냥 value를 넣으면 오류난다. 주소를 보내주어야 하기 때문이다. 그러니까 포인터를 하나 선언하는 방법이 있다. 그리고 한 가지 더 보여드리자면 리터럴이라서 주소가 없기 때문이다. 혹시나 const로 바꾸면 될까? 생각할 수 있다. 그냥 주소만 넣어주어야 하는 것이다. 그다음 함수 안에서 ptr을 de-referencing 한 것도 찍어보고 ptr도 찍어보고..
void pointer void pointer는 모든 데이터 자료형을 가리킬 수 있는 특별한 타입의 포인터이다. 제네릭 포인터(generic pointer)라고도 불린다. generic이란 포괄적이다 라는 뜻을 가지고 있다. void 포인터는 void 키워드를 사용하여 일반 포인터처럼 선언한다. void* ptr; //ptr is a void pointer void 포인터는 모든 데이터 자료형의 객체를 가리킬 수 있다. 예를 들어보자 int, float, char 한 개씩 선언하고 void 포인터를 일단 nullptr로 초기화를 했고 void pointer에 int, float, char 타입의 주소도 넣어봤는데 문제가 없다. just 주소 그 자체이기 때문에 void 포인터에다가 주소를 넣는 것은 문제..