25 - 배열과 포인터의 관계
1.
#include <stdio.h>
int main() {
int a = 10;
int *ptr_a = &a;
printf("ptr_a의 값 : %d\n", ptr_a); // 6487572
printf("ptr_a + 1의 값 : %d\n", ptr_a + 1); // 6487576 4byte 만큼 더함
//포인터가 가리키는 변수의 자료형 크기만큼 더한다.
}
2.
#include <stdio.h>
int main() {
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < 10; i++) {
printf("&arr[%d] = %d\n", i, &arr[i]);
printf("arr + %d = %d\n", i, arr + 1); // 위와 주소값이 동일
}
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
// ptr = &arr[0] ptr에 arr[0]의 주소를 넣어라
for (int *ptr = arr; ptr < arr + 10; ptr++) {
printf("%d ", *ptr);
}
printf("\n");
}
아래 3개의 반복문은 같은 결과값이 나옴
26 - 배열 포인터
#include <stdio.h>
int main() {
int arr[3] = { 1, 2, 3};
int(*ptr_arr)[3]; // 길이 3인 int형 배열을 가리키는 포인터를 선언
ptr_arr = &arr;
for(int i =0; i < 3; i++) {
printf("%d\n", (*ptr_arr)[i]); // 1, 2, 3 출력
}
}
'Programming > C' 카테고리의 다른 글
prototype (0) | 2020.02.18 |
---|---|
포인터 배열 정리 (0) | 2020.02.18 |
2차원 배열과 배열 포인터 정리 (0) | 2020.02.17 |
배열과 포인터 정리 1 (0) | 2020.02.14 |