배열의 주소와 실제 크기를 전달받아 화면에 출력하는 함수를 포인터의 색인화 사용해서 만들라는데
int arr[3]
int *p=arr;
for (int i=0; i<5; i++)
printf("%d",p[i]);
처럼 포인터를 배열로 사용하라는 애기인가요?
배열의 주소와 실제 크기를 전달받아 화면에 출력하는 함수를 포인터의 색인화 사용해서 만들라는데
int arr[3]
int *p=arr;
for (int i=0; i<5; i++)
printf("%d",p[i]);
처럼 포인터를 배열로 사용하라는 애기인가요?
func(int* arr, int len)
배열과 포인터는 언뜻 비슷해보이지만 배열을 포인터로 던져주게되면 길이 정보가 상실됨... 이걸 array decay라구 하는데 그래서 길이를 같이 전달해줘야 배열 범위 밖을 참조하는 등 예상치 못한 오류를 방지할 수 있음
색인화를 검색해보면 정보를 쉽게 찾을 수 있게 인덱스를 제공한다고 되어있음. 함수의 매개변수로 길이가 정해진 배열을 받을 수도 있지만, 그렇게 하면 불편하기 때문에 포인터로 주소만 받고 길이를 따로 주는게 포인터의 색인화가 아닐까 싶음
void printArray(const int p[], int size) { for (int i = 0; i < size; i++) printf("%d", *(p+i)); }
size로 배열의 요소 개수를 넣어주었는데
이것도 색인화 맞을까요?
응 대충 그렇게 하는게 맞을거야
아 넵
알려주셔서 감사합니다
ㅇㅇ 색인 = 인덱스 - dc App