scanf() 함수는 왜 주소값을 반환 받아야되나요?
꽃님이
2023.04.01
질문 제목 : 질문 내용 : scanf를 쓸때 (인자,&인자); 로 쓰잖아요.
&가 주소값을 반환받는다는 뜻으로 배웠습니다..대체 왜 scanf함수는 주소값을 반환받나요?
-
진이
리턴값을 문자열로 주는건 포인터로 밖에 할수 없기 때문입니다.
만약 포인터로 문자열을 받아서 쓴다고 해봅시다.
그런데 scanf가 반환한 포인터값은 임시로 시스템 내에서 할당한 포인터 배열이라서 언제 수정될지 모르는 놈이죠.
그렇다면 strcpy를 쓰면 되는데
결국 strcpy (*str,scanf (\%d \)) 이런식이겠죠..
이렇게 복잡하게 쓰느니 scanf () 내에서 문자열을 받아서 지정한 문자열에 strcpy 해준다고 봐도 무방합니다.
좀더