• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

6.2 강의 듣는 중 질문있습니다

23.03.24 14:19 작성 조회수 277

1

void doSomething(int students_scores[3])

int main()

{...

doSomething(students_scores)

}

이 함수 내 파라미터에 궁금증이생겼는 데요.

기본적으로 c언어를 공부를 했는 데, 저는 메인 함수내부에 배열을 넘겨 받는 함수를 만들때는 포인터로 선언을 해서 받았는 데,

해당 영상에서는 저렇게 해도 작동된다는 것을 보고, 조금 궁금한 점이 생겼습니다.

doSomething함수의 파라미터도 포인터로 된다고 하셨는 데, 그럼 [3] 괄호안에 있는 숫자는 뭘의미하는 건가요??

int (*students_score)[3] 이것인가요??(int 형 자료를 가진 포인터 변수 3개) 조금 헷갈려서 질문 남깁니다.

ps. 아 그리고 마지막으로 저런식으로도 사용하는 사람들이 좀 있는 편인가요??

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.03.24

안녕하세요, 답변 도우미 Soobak 입니다. 😀

질문 1.) [3] 괄호안에 있는 숫자는 뭘 의미하는 건가요??
: 매개변수로 선언된 괄호안의 숫자는 사실 상 의미가 없다고 보셔도 됩니다. 함수의 인자로 전달되어 복사되는 것은 배열의 첫 번째 주소를 담은 포인터 변수입니다. 다만, 이러한 방식으로 함수를 선언함으로써 해당 함수는 매개변수가 배열 이라는 점과 배열의 크기 에 대한 의도를 보다 명확히 나타낼 수 있습니다. 즉, 의도에 대한 가독성을 위한 것입니다.

질문 2.) 아 그리고 마지막으로 저런식으로도 사용하는 사람들이 좀 있는 편인가요??
: 이러한 방식은 초기 C++ 코드에서 자주 사용되었으나, 현재는 점점 사용이 줄어들고 있는 방식이라고 합니다. 하지만, 일부 상황에서 호환성을 유지하기 위해 사용될 때도 있다고 합니다.