Re: UNIT63. scanf도 값을 반환하는건가요?
, 도장_ 관리자님이 작성함수의 반환값은 하나입니다.
scanf는 읽어들인 입력 개수를 반환합니다.
int number = scanf("%d %d %d", &a, &b, &c);
숫자 3개를 입력받으면 number는 3이 됩니다. scanf의 반환값은 number에 저장됩니다.
함수는 반환값을 하나만 전달할 수 있으니 여러 개의 값을 반환하고 싶을 때는 곤란합니다. 이럴 때는 포인터를 이용해서 간접적으로 값을 전달받습니다. scanf에서 3개의 값을 입력 받아 3개의 변수에 값을 넣는 것처럼 말이죠. 이때 함수는 실행이 종료되면 함수 범위의 모든 변수는 메모리에서 제거됩니다. 함수 호출 후에도 남아 있는 변수 a, b, c의 주소를 전달해서 포인터로 처리하는 겁니다.