인자 값으로는 여러 개를 전달할 수 있지만 return 값은 여러 개를 전달 할 수 있을까?
※이 글은 잘못된 정보를 가지고 있습니다. 밑에 댓글을 참조해주세요.
return a,b; 이러한 식으로 전달하는 방법이 아닌 메모리주소와 변수(구조체)를 이용한 방식입니다.
c언어에서는 return a,b; 이러한 방식은 없다고 합니다.
2가지 방법이 있다.
1 . 포인터를 이용한 방법 2. 구조체를 이용한 방법
우선 1번 포인터를 이용한 방법이다.
포인터를 이용한 방법, 즉 call by reference인데 이것은 솔직히 return값을 여러 개 전달했다?라고 말하기는 좀 그렇고 간접 참조를 이용하여 메모리에 값을 바꿔주는 그런 형식인 것 같다.
다음은 구조체를 이용한 방법이다.
이 방법은 구글 검색을 통해서 알게된 방법인데 이 방법이 1번 방법보다 이번 글의 주제와 더 잘 맞는 것 같다.
구조체는 하나 이상의 변수(포인터 변수와 배열을 포함)를 묶어서 새로운 자료형을 정희하는 도구이다. 따라서 구조체를 이용하여 새로운 자료형을 정의할 수 있다.
새롭게 정의된 자료형(구조체)을 이용하여 return의 값을 2개이상 전달 받을 수 있다.
'C언어' 카테고리의 다른 글
포인터에서 헷갈렸던 부분 (0) | 2016.10.12 |
---|