옥수수와 식빵 그리고 코딩

11장 연습문제 포인터 기초 본문

C/perpect C

11장 연습문제 포인터 기초

옥식 2022. 1. 8. 14:41

01. int형 변수 data에 100을 저장하고 data의 저장값과 주소 출력

#include <stdio.h>

int main(void)
{
    int data = 100;
    int* p = &data;

    printf("%d %p", *p, p);

    return 0;
}

 

02. 배열 a와 포인터 p에서 포인터 p를 사용해 배열 원소 모두를 출력

#include <stdio.h>

int main(void)
{
    int a[5] = { 1, 2, 3, 4, 5 };
    int* p;
    p = &a[2];

    for (int i = -2; i <= 2; i++)
        printf("%d ", *(p + i));

    return 0;
}

 

03.  ..? 첨자가 뭐야..? 위첨자 아래첨자 밖에 모르는디...

 

 

04. int형 변수에 short*ps를 선언해 앞 2바이트에 0x000f를 저장해 출력

#include <stdio.h>

int main(void)
{
    int value = 0x000000ff;
    int* pi = &value;
    printf("%d\n", *pi);

    short* ps;
    ps = (short*)& value;
    *(ps + 1) = 0x000f;
    printf("%d ", *ps);
    printf("%d", *(ps + 1));

    return 0;
    
}

05.2차원 배열 을 2차원 배열 포인터 p를 활용해 배열 원소 출력

#include <stdio.h>

int main(void)
{
    int arr[3][4] = { 11, 22, 33, 44, 55, 66, 77, 88, 11, 66, 77, 44 };
    int(*p)[4] = arr;//*p가 아니라 이케 해야 함 2차원 배열
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            printf("arry[%d][%d] = %d", i, j, *(*(p + i) + j));
        }
        printf("\n");
    }
    return 0;
    
}

 

06.int *p[3] 활용

#include <stdio.h>

int main(void)
{
    int* p[3];
    int a = 1, b = 2, c = 3;
    p[0] = &a;
    p[1] = &b;
    printf("%d", *p [1]);
    return 0;

}

 

07.

 

 

08.

 

 

 

'C > perpect C' 카테고리의 다른 글

구조체 궁금한 부분 - *변수는 값입력을 받을 수가 없나?  (0) 2022.01.08
12장 연습문제 - 문자열  (0) 2022.01.08
10장 변수 유효범위 연습문제  (0) 2022.01.05
9장 연습문제  (0) 2022.01.01
8장 배열 연습문제  (0) 2021.12.30
Comments