안녕하세요 ! 초보개발자 입니다.
이 블로그는 개인 공부 정리용 블로그 입니다.
혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.
그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.
그럼 시작하도록 하겠습니다.
1.포인터(3)
1) 포인터와 배열
포인터로 배열도 다룰 수 있습니다. 길이가 4 인 int배열 arr(int arr[4]={0,1,2,3} 이 있을 경우 메모리에 저장된 배열은 다음과 같이 나타낼 수 있습니다.
배열 요소의 타입이 int 형이므로 배열의 각 요소의 사이 간격은 4byte인것을 알 수 있습니다.
예제를 통해서 알아 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include<stdio.h> int main(void) { int arr[4] = { 0,1,2,3 }; int *pt = &arr[0]; printf("*pt = %d, pt = %p\n", *pt, pt); printf("arr[0] = %d, &arr[0] = %p\n", arr[0], &arr[0]); printf("arr[1] = %d, &arr[1] = %p\n", arr[1], &arr[1]); printf("arr[2] = %d, &arr[2] = %p\n", arr[2], &arr[2]); printf("arr[3] = %d, &arr[3] = %p\n", arr[3], &arr[3]); return 0; } | cs |
실행 결과는 다음과 같습니다.
배열 arr 의 첫 번째 요소의 주소를 포인터에 저장하였으므로 pt의 값과 &arr[0]의 값이 똑같은 것을 알 수 있습니다. 또한 포인터 pt가 가리키는 주소에 저장되어 있는 값인 *pt와 arr배열의 첫번째 요소의 값 역시 일치한 것을 볼 수 있습니다.
오늘의 강의는 여기서 마치도록 하겠습니다. 일이 너무 바빠서 강의 내용이 많이 부족하네요.. 다음시간에도 역시 포인터를 이어서 설명해보도록 하겠습니다.
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] 포인터(5) - 포인터의 연산 (2) | 2017.04.26 |
---|---|
[C언어] 포인터(4) - 포인터의 형변환, 상수포인터 (0) | 2017.04.25 |
[C언어] 포인터(2) - 포인터의 형변환 (3) | 2017.04.23 |
[C언어] 포인터(1) - 포인터란 ? (1) | 2017.04.20 |
[C언어] 지역변수, 전역변수,정적변수 (1) | 2017.04.19 |