Programming Language/C

[C] 포인터 연산

lingk 2020. 11. 5. 19:27
void main(){
	
    int a[] = {10, 20, 30, 40, 50};
    int *p = a;
    printf("%d", *++p);
    printf("%d", *p+1);
    printf("%d", ++*p);
    printf("%d", (*p)++);
    printf("%d", *p+=1);
    printf("%d", *p++);
    printf("%d", *(p+1));

}

배열 a의 주소는 100번지라 가정

 

출력값 출력후 값 출력후 주소
20 20 104
21 20 104
21 21 104
21 22 104
23 23 104
23 30 108
40 30 108
p+1 p가 가리키는 주소에 1을 더함
*p+1 p가 가리키는 주소 안의 값에 1을 더함
*(p+1) p가 가리키는 주소에 1을 더한 후 안의 값 접근
++*p p가 가리키는 주소 안의 값에 1을 더함
*++p p가 가리키는 주소에 1을 더한 후 안의 값 접근
(*p)++ *p를 처리 후 p가 가리키는 주소 안의 값에 1을 더함
*p++ *p를 처리 후 p가 가리키는 주소에 1을 더함

 

반응형

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

[C] strcmp()  (0) 2020.11.26
[C] 16진수 표현  (0) 2020.11.25
[C] strcpy() strncpy()  (0) 2020.11.24
[C] write() 함수  (0) 2020.11.20
[C] 표준 입력함수  (0) 2018.08.21