Tuuna Computer Science

[C 언어] 포인터로 배열접근 본문

C language

[C 언어] 포인터로 배열접근

GuTTe 2018. 4. 24. 19:52
#include <stdio.h>

int main(void)
{
    int arr[10] = {1,2,3,4,5,6,7,8,9, 10}; //배열 선언  
    
    int *p = arr; //7행이나 8행이나 같다! arr이나 arr[0]이나!
    int* p0 = &arr[0]; //이 7줄과 8줄이 의미하는 봐는 arr과 arr[0]의 주소값은 같다.  
    
    printf("%d\n", arr[0+1]); //arr[1]
    printf("%d\n", *(arr+1));  //arr주소값에 int형 크기 반큼 바이트가 증가하여 다음 arr[1]의 주소값을 가르킨다.  
    printf("%d\n", *(p0+1)); //int형이니 4byte씩 넘긴다.
    printf("%d\n", *(p+1)); //4개다 같은것을 가리킨다!
    printf("%d\n", *p+100); //이건 다른거임ㅋ  -> *p(포인터가 참조하고있는 메모리주소값의   값에 100을 더한것  
    printf("%d\n", *&arr[0]); //arr[0]의 주소값에 접근하여 그 주소에 든 값을 참조  
    return 0;
} //실행결과 2,2,2,2,101
//*&arr[0] -> arr[0]의 주소값에 접근하여 그 주소값에 든 값을 참조  
//arr+1 arr+2? //이건 int형 변수의 크기만큼 주소가 더해진다!  


'C language' 카테고리의 다른 글

[C 언어] 스트림이란?  (0) 2018.04.24
[C 언어] 포인터로 배열접근2  (0) 2018.04.24
[C 언어] 함수 포인터  (0) 2018.04.24
[C 언어] 포인터 개념  (0) 2018.04.24
[C 언어]문자열 역으로 출력하기  (0) 2018.04.15
Comments