C

[C] gets의 반환값은?

ryancha9 2019. 12. 2. 00:07

gets의 원형은 char *gets(char* buffer) 이다.
리턴형이 (char*)이고 매개변수도 (char*)이다.
(char*)을 잘 모른다면 여기에는 char형 주소를 넣어준다고 생각하면 된다.

예를 들어

#include <stdio.h>
int main(){
char *pt;
char a[10];
pt = gets(a);
printf("%s", pt);

그렇다면 pt의 출력값은?
gets는 입력받은 값의 주소를 반환한다.
결국엔 출력하면 pt는 a에서 입력한 값과 일치하게 된다.
콘솔창에 "abc"를 입력했을 때 a에는 "abc"가 들어간다.
pt에도 "abc"가 들어간다.
printf("%s %s", a, pt); 를 확인해보자
- abc abc가 나올것이다.

의문이 든다면
printf("%p %p \n", pt, a); 를 입력해보자
두 변수는 같은 번지를 가르키고 있다.