n1,n2,n3가 같은 주소지(ex. 100번지) 인지 아닌지는 어떻게 구분하나요?
안녕하세요 길벗수험서 운영팀입니다.
n1, n2, n3가 같은 주소인지, 아닌지는 그냥 코드를 눈으로 보고 구분을 할 수 없습니다.
해당 코드들을 디버깅을 하면서 실행을 해봐야합니다.
char* n1 = getname( ); char* n2 = getname( ); char* n3 = getname( );
3개의 코드 모두다 문자형 포인터 변수 n1, n2, n3를 선언하는데
getname( ) 함수를 호출한 후 돌려받은 값으로 초기화해라 라는 뜻입니다.
여기서 n1, n2, n3는 모두 변수명입니다.
위에 있는 코드를 한줄씩 만날때 마다 getname( ) 함수를 호출을 하고
getname( ) 함수중
gets(n) 을 만나 사용자로부터 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소(1000번지)를 함수를 호출했던 곳을 반환을 해줍니다.
char* n1 = getname( ); 이코드를 만나 getname( ) 함수를 호출할것이고
gets(n); 첫번째로 이코드를 만나면 사용자로부터 "홍길동" 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소 1000번지를 함수를 호출했던 곳을 반환을 해주면
n1변수는 1000번지 주소를 갖습니다.
char* n2 = getname( ); 이코드를 만나 getname( ) 함수를 호출할것이고
gets(n); 두번째로 이코드를 만나면 사용자로부터 "김철수" 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소 1000번지를 함수를 호출했던 곳을 반환을 해주면
n2변수는 1000번지 주소를 갖습니다.
char* n2 = getname( ); 이코드를 만나 getname( ) 함수를 호출할것이고
gets(n); 두번째로 이코드를 만나면 사용자로부터 "박영희" 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소 1000번지를 함수를 호출했던 곳을 반환을 해주면
n3변수는 1000번지 주소를 갖습니다.
그리고 그 밑에 있는 아래 3줄의 코드를 실행해 결과값을 출력을 하는데
n1변수에 1000번지, n2변수에 1000번지, n3변수에 1000번지를 가지고 있습니다.
이때 1000번지에는 현재 "박영희"데이터가 저장이 되어있으니
아래 3줄의 코드에서 "박영희"가 출력됩니다
printf("%s\n", n1); printf("%s\n", n2); printf("%s\n", n3);
행복한 하루되세요 :)
-
관리자2025-04-14 11:29:16
안녕하세요 길벗수험서 운영팀입니다.
n1, n2, n3가 같은 주소인지, 아닌지는 그냥 코드를 눈으로 보고 구분을 할 수 없습니다.
해당 코드들을 디버깅을 하면서 실행을 해봐야합니다.
char* n1 = getname( ); char* n2 = getname( ); char* n3 = getname( );
3개의 코드 모두다 문자형 포인터 변수 n1, n2, n3를 선언하는데
getname( ) 함수를 호출한 후 돌려받은 값으로 초기화해라 라는 뜻입니다.
여기서 n1, n2, n3는 모두 변수명입니다.
위에 있는 코드를 한줄씩 만날때 마다 getname( ) 함수를 호출을 하고
getname( ) 함수중
gets(n) 을 만나 사용자로부터 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소(1000번지)를 함수를 호출했던 곳을 반환을 해줍니다.
char* n1 = getname( ); 이코드를 만나 getname( ) 함수를 호출할것이고
gets(n); 첫번째로 이코드를 만나면 사용자로부터 "홍길동" 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소 1000번지를 함수를 호출했던 곳을 반환을 해주면
n1변수는 1000번지 주소를 갖습니다.
char* n2 = getname( ); 이코드를 만나 getname( ) 함수를 호출할것이고
gets(n); 두번째로 이코드를 만나면 사용자로부터 "김철수" 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소 1000번지를 함수를 호출했던 곳을 반환을 해주면
n2변수는 1000번지 주소를 갖습니다.
char* n2 = getname( ); 이코드를 만나 getname( ) 함수를 호출할것이고
gets(n); 두번째로 이코드를 만나면 사용자로부터 "박영희" 문자열을 입력받아 n에 저장을 하고
return n 을 만나 n의 시작주소 1000번지를 함수를 호출했던 곳을 반환을 해주면
n3변수는 1000번지 주소를 갖습니다.
그리고 그 밑에 있는 아래 3줄의 코드를 실행해 결과값을 출력을 하는데
n1변수에 1000번지, n2변수에 1000번지, n3변수에 1000번지를 가지고 있습니다.
이때 1000번지에는 현재 "박영희"데이터가 저장이 되어있으니
아래 3줄의 코드에서 "박영희"가 출력됩니다
printf("%s\n", n1); printf("%s\n", n2); printf("%s\n", n3);
행복한 하루되세요 :)