Minwoo Dev.

<윤성우의 열혈 C프로그래밍> :: 12. 포인터의 이해 문제풀이 본문

C++

<윤성우의 열혈 C프로그래밍> :: 12. 포인터의 이해 문제풀이

itisminu 2023. 9. 4. 12:47
728x90
반응형
SMALL

문제 12-1

 

 

문제 1

아래의 예제 실행 시 변수와 포인터 변수의 관계를 그림을 그려서 설명해보자. 또한 출력의 결과도 예상해보자.

 

#include<stdio.h>

int main(void)
{
    int num = 10;
    int * ptr1 = &num;
    int * ptr2 = ptr1;

    (*ptr1)++;
    (*ptr2)++;
    printf("%d\n",num);
    return 0;
}

 

 

문제 2

int 형 변수 num1과 num2를 선언과 동시에 각각 10과 20으로 초기화하고, int 형 포인터 변수 ptr1과 ptr2를 선언하여 각각 num1과 num2를 가리키게 하자. 그리고 이 상태에서 포인터 변수 ptr1과 ptr2를 이용해서 num1의 값을 10 증가시키고, num2의 값을 10 감소시키자.

이제 두 포인터 변수 ptr1과 ptr2가 가리키는 대상을 서로 바꾸자. 즉, 포인터 변수 ptr1이 num2를 가리키게 하고, 포인터 변수 ptr2가 num1을 가리키게 하자. 그리고 마지막으로 ptr1과 ptr2가 가리키는 변수에 저장된 값을 출력하자.

#include<stdio.h>

int main(void)
{
    int num1 = 10, num2 = 20;
    int * ptr1 = &num1;
    int * ptr2 = &num2;
    (*ptr1) += 10;
    (*ptr2) -= 10;

    ptr1 = &num2;
    ptr2 = &num1;

    printf("*ptr1 : %d, *ptr2 : %d\n",*ptr1,*ptr2);
    return 0;
}

728x90
반응형
LIST