C언어 배열 주소값과 값 표현방식


C언어 배열 주소값과 값 표현방식


이번에는 배열 주소값과 값 표현 방식에 대해서 알아보겠습니다.

배열 주소값과 표현 방식이 너무나 많이 있습니다.

이것을 쉽게 정리해서 보여드리도록 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int main()
{
    int array[3= { 10,20,30 };
    int arr[2][2= { 10,20,30,40 };
    //1차원 배열 주소값 표현 방법
    printf("%x %x %x\n", array + 0, array + 1, array + 2);
    printf("%x %x %x\n"&array[0], &array[1], &array[2]);
    printf("\n");
    //1차원 배열 값 표현방법
    printf("%d %d %d\n", array[0], array[1], array[2]);
    printf("%d %d %d\n"*(array + 0), *(array + 1), *(array + 2));
    printf("\n");
 
    //2차원 배열 주소값 표현 방법
    printf("%x %x\n", arr[0], arr[1]); //0행과 1행 대표 주소
    printf("%x %x\n"*(arr + 0), *(arr + 1)); //0행과 1행 대표 주소
    printf("%x %x %x %x\n", arr[0]+0, arr[0]+1, arr[1]+0, arr[1]+1);
    printf("%x %x %x %x\n"*(arr + 0 + 0), *(arr + 0+ 1*(arr + 1+ 0*(arr + 1+ 1);
    printf("\n");
 
    //2차원 배열 값 표현 방법
    printf("%d %d %d %d\n", arr[0][0], arr[0][1], arr[1][0], arr[1][1]);
    printf("%d %d %d %d\n"*arr[0+ 0*arr[0+ 1*arr[1+ 0*arr[1+ 1);
    // 이렇게 할시에 arr[0]번째 값을 찾아서 +를해줌
    printf("%d %d %d %d\n"**(arr + 0+ 0**(arr + 0+ 1**(arr + 1+ 0**(arr + 1+ 1);
    // 이렇게 할시에 arr[0]번째 값을 찾아서 +를해줌
    printf("%d %d %d %d\n"*(arr[0+ 0), *(arr[0+ 1), *(arr[1+ 0), *(arr[1+ 1));
 
    return 0;
}
cs

< 출력 >


dff7d0 dff7d4 dff7d8
dff7d0 dff7d4 dff7d8
 
10 20 30
10 20 30
 
dff7b8 dff7c0
dff7b8 dff7c0
dff7b8 dff7bc dff7c0 dff7c4
dff7b8 dff7bc dff7c0 dff7c4
 
10 20 30 40
10 11 30 31
10 11 30 31
10 20 30 40
cs


소스와 출력 결과를 분석해보면서 같이 보시면 이해가 될 것이다.

활용법과 이건 이렇게 쓰이고 저건 저렇게 쓰이네?라는 것을 알게 될 것이다.

배열과 포인터는 연관이 있으니 잘 알아두면 편하다. 이것을 정확히 알아야 포인터 배울 때 쉽게 배울 수 있다.


이 글을 통해서 값 표현방식과 주소값 표현방식을 정확히 알았으면 한다.

이 글은 여기서 마치도록 하겠다.

댓글

Designed by JB FACTORY