기타/정보처리기사

정보처리기사 정처기 | 포인터와 문자열 | 필기&실기 개념

YUNI Heo 2024. 1. 16. 21:56
반응형

⭕ 정보처리기사 정처기 | 포인터와 문자열 | 필기&실기 개념

C 프로그래밍에서 포인터와 문자열은 메모리 조작과 문자열 처리에 있어서 핵심적인 역할을 합니다. 주어진 코드를 통해 이러한 개념을 심층적으로 이해해 보겠습니다.


포인터는 메모리 주소를 저장하는 변수로, 문자열은 연속된 문자의 배열로 구성됩니다. const char *country = "KOREA";에서 country는 문자열 "KOREA"의 첫 번째 문자를 가리키는 포인터입니다.

 

➡️ 문자열 출력

printf("%s\n", country);
printf("%s\n", country + 1);

 

%s 서식 지정자는 포인터가 가리키는 문자열을 출력합니다. 두 번째 줄에서 country + 1은 포인터를 문자열의 두 번째 위치로 이동시켜 "OREA"를 출력합니다.

 

➡️ 문자 출력

printf("%c\n", *country);
printf("%c\n", *(country + 3));

%c 서식 지정자는 포인터가 가리키는 위치의 문자를 출력합니다. 세 번째 줄에서 *country는 첫 번째 문자 "K"를 출력하고, 네 번째 줄에서 *(country + 3)는 네 번째 문자 "E"를 출력합니다.

 

➡️ 포인터 연산과 ASCII 값

printf("%c\n", *country + 4);

포인터는 산술 연산이 가능하며, 이를 통해 문자열 내에서 이동할 수 있습니다. 위 코드에서 *country + 4는 포인터가 가리키는 위치의 문자를 ASCII 값으로 취급하여 4를 더한 결과를 출력합니다. 따라서 'K'의 ASCII 값(75)에 4를 더한 값인 79에 해당하는 문자 'O'를 출력합니다.

 

⭕ [예시] 

➡️ 2023년도 3회 실기 기출 - 10. [C 언어 코드] 알맞은 출력 값을 작성하시오.

#include <stdio.h>

int main() {
    const char *country = "KOREA";

    printf("%s\n", country);
    printf("%s\n", country + 1);
    printf("%c\n", *country);
    printf("%c\n", *(country + 3));
    printf("%c\n", *country + 4);

    return 0;
}

정답

KOREA 
OREA 
K 
E 
O

해설

 C 프로그래밍 언어로 작성된 간단한 프로그램입니다.

  1. const char *country = "KOREA";: 문자열 "KOREA"를 나타내는 포인터 변수 country를 선언하고 초기화합니다.
  2. printf("%s\n", country);: 첫 번째 줄은 문자열을 출력하는데, %s는 문자열을 나타내는 서식 지정자입니다. 여기서는 "KOREA"가 출력됩니다.
  3. printf("%s\n", country + 1);: 두 번째 줄은 문자열의 두 번째 문자부터 끝까지를 출력합니다. country + 1은 문자열의 두 번째 문자를 가리키는 포인터이므로, "OREA"가 출력됩니다.
  4. printf("%c\n", *country);: 세 번째 줄은 포인터가 가리키는 위치에 있는 문자를 출력합니다. 여기서는 "K"가 출력됩니다.
  5. printf("%c\n", *(country + 3));: 네 번째 줄은 포인터를 세 칸만큼 이동시켜 그 위치에 있는 문자를 출력합니다. 따라서 "E"가 출력됩니다.
  6. printf("%c\n", *country + 4);: 다섯 번째 줄은 포인터가 가리키는 위치의 문자를 ASCII 값으로 취급하여 4를 더한 결과를 출력합니다. 따라서 'K'의 ASCII 값(75)에 4를 더한 값인 79에 해당하는 문자가 출력됩니다. 결과적으로 'O'가 출력됩니다.


[정보처리기사/[최신] 실기 기출] - [2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

 

[2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

⭕ [2023년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리 ➡️ 1. [JAVA 코드] 알맞은 출력 값을 작성하시오. public class Main { public static void main(String[] args) { Parent childInstance = new Child(); childIns

sugoring-it.tistory.com

반응형