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); 를 입력해보자
두 변수는 같은 번지를 가르키고 있다.
'C' 카테고리의 다른 글
[C] 지역변수 정적변수 전역변수 초기화 (0) | 2019.12.02 |
---|---|
[C] 전위 후위연산자 비교 (0) | 2019.12.02 |
[C] char와 int의 관계 (0) | 2019.12.02 |
[C] C언어의 메모리 구조 (0) | 2019.12.02 |
[C] 비트 연산자 계산방법 (0) | 2019.12.02 |