책 내용 질문하기
2023년7월 3번 문제
도서
2025 시나공 정보처리기사 실기 기출문제집
페이지
133
조회수
44
작성일
2025-04-13
작성자
최*환
첨부파일


n1,n2,n3가 같은 주소지(ex. 100번지) 인지 아닌지는 어떻게 구분하나요?

답변
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);


행복한 하루되세요 :)


  • 관리자
    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);


    행복한 하루되세요 :)


· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.