해결된 질문
작성
·
38
0
int maxVal(int *arr, int size)에서 arr에 *을 붙여서 선언을 하고 문제 중간
int max = maxVal(arr, size-1); ->여기서 arr은 메모리(정해져 있지 않고 매우긴, 이 arr메모리 값을 다시 int *arr이 받음)
여기까지는 그냥 풀고있었는데
return(arr[size-1]>max)?arr[size-1]:max;
이부분에서 *arr[size-1]이 아닌 arr[size-1]인 이유를 모르겠습니다. 위에서 선언 이후에 *이 붙으면 값 *이 안붙으면 주소 아닌가요??
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야
어떤 강좌에서 질문하셨는지 알 수 있습니다.
영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다.
이미 다른 누군가가 질문을 한 이력이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다.
학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다.
제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다.
시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산)
질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
답변 1
0
인덱스로 접근하는 것은 그 자체가 값입니다.
예시로 int a[] = {1, 2, 3}
에서 a[0]
은 그냥 값 1이지 주소가 아닙니다.
maxVal에서 포인터로 받은 것은 배열의 시작주소를 받으려면 포인터가 가리켜야하기 때문입니다.
시험이 얼마 안 남았으니 "배열이 파라미터로 오려면 가리켜야한다"로 암기하시는 것을 추천드립니다.