- 배열과 포인터
- 포인터 복습. 다음 글을 읽어보세요
- 포인터 알아보기 예시 코드
#include<stdio.h>
int main(){
int arr[100] = {1,2,3,4,5,6,7};
int arr2d[5][5] = {{1,2,3,4,5},{11,22,33,44,55},{111,222,333,444,555},{1111,2222,3333,4444,5555},{11111,22222,33333,44444,55555}};
int* arrp = arr;
char* arrcp = (char*)arr;
int * arr2dnormalp = arr2d;
int (*arr2dnormalp3)[3] = arr2d;
int (*arr2dnormalp4)[4] = arr2d;
int (*arr2dnormalp5)[5] = arr2d;
arrp++;
printf("arr의 1 인덱스 (arrp변수를 이용해 접근)= %d\n", *arrp);
printf("arr의 1 인덱스 (arr변수를 이용해 접근) = %d\n", *(arr + 1)); //*(arr +1) = arr[1]
printf("arr의 0.25 인덱스 = %d\n", *(++arrcp));
printf("arr의 0.5 인덱스 = %d\n", *(++arrcp));
printf("arr의 0.75 인덱스 = %d\n", *(++arrcp));
printf("arr의 1.0 인덱스 = %d\n", *(++arrcp));
printf("arr2normalp로 여행 = %d %d %d %d %d\n", *(arr2dnormalp+ 0),*(arr2dnormalp+ 1),*(arr2dnormalp+ 2),*(arr2dnormalp+ 3),*(arr2dnormalp+ 4));
printf("arr2normalp3로 여행(포인터값이 나옴) = %d %d %d %d %d\n", *(arr2dnormalp3+ 0),*(arr2dnormalp3+ 1),*(arr2dnormalp3+ 2),*(arr2dnormalp3+ 3),*(arr2dnormalp3+ 4));
printf("arr2normalp3로 여행 = %d %d %d %d %d\n", *(*(arr2dnormalp3+ 0)),*(*(arr2dnormalp3+ 1)),*(*(arr2dnormalp3+ 2)),*(*(arr2dnormalp3+ 3)),*(*(arr2dnormalp3+ 4)));
printf("arr2normalp4로 여행 = %d %d %d %d %d\n", *(*(arr2dnormalp4+ 0)),*(*(arr2dnormalp4+ 1)),*(*(arr2dnormalp4+ 2)),*(*(arr2dnormalp4+ 3)),*(*(arr2dnormalp4+ 4)));
printf("arr2normalp5로 여행 = %d %d %d %d %d\n", *(*(arr2dnormalp5+ 0)),*(*(arr2dnormalp5+ 1)),*(*(arr2dnormalp5+ 2)),*(*(arr2dnormalp5+ 3)),*(*(arr2dnormalp5+ 4)));
printf("arr2normalp5로 좀더 자세하게 여행 = %d %d %d %d %d\n", *(arr2dnormalp5[0]),*(arr2dnormalp5[1]),*(arr2dnormalp5[2]),*(arr2dnormalp5[3]),*(arr2dnormalp5[4]));
return 0;
}
- 동적할당
- malloc
- calloc
- realloc
- 멀럭컬럭리얼럭