본문 바로가기
Programming/C

[C] 짱짱 포인터 분석 1

by graygreat 2017. 4. 9.
728x90
반응형

포인터를 이해하기에 좋은 과제...?


#include <stdio.h>

void main() {
    int iValue[10] = { 10,20,30,40,50,60,70,80,90,100 }; // 10개의 정수를 입력 받은 배열 선언
    int *p = &iValue[7];  // iValue[7]의 주소값을 *p에 넣음

    printf("\n\n ***** program start ***** \n\n");

    printf("*p = %d\n", *p);  // *p의 값은 iValue[7]의 주소에 저장되어 있던 값
    printf("*p + 1 = %d\n", *p + 1);  // *p의 값 + 1 --> 80 + 1
    printf("*(p+1)=%d \n", *(p + 1));  // 포인터를 대상으로 1증가 시키면 n x sizeof(type)의 크기만큼 주소값이 증가
                                       // 그러므로 iValue[7]의 주소값 보다 4증가한 iValue[8]의 값을 출력

    printf("*p = %p, *(p + 1) = %p, *(p + 2) = %p \n", p, (p + 1), (p + 2));

    printf("*p++ = %d \n", *p++);  // *p++을 해주었지만 후치연산자는 그 다음 행부터 적용 되기 때문에 값이 그대로
    printf("*p++ = %d \n", *++p);  // *++p는 *(p+1)과 같은 의미로 볼 수 있다. 이전 행의 후치연산을 통해 *(p + 2)가 됨 

    printf("\n ***** program end ***** \n\n");
}



반응형

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

[C] 난수 최대값 구하기  (0) 2017.04.10
[C] 짱짱 포인터 분석 2  (0) 2017.04.10
[C] N x N 행렬 오름차순 ㄹ 정렬  (0) 2017.04.03
[C] N x N 행렬 오름차순 역순 정렬  (0) 2017.04.03
[C] N x N 행렬 오름차순 정렬  (0) 2017.04.03

댓글