• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

for (const auto &number : fibonacci), &유무의 차이점?

23.01.28 02:19 작성 조회수 339

0

int main()

{

int fibonacci[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };

for (auto& number : fibonacci)

number *= 10;

//for (const auto number : fibonacci)

for (const auto &number : fibonacci)

cout << number << " "; // -------1)

cout << endl;

return 0;

}

1) 라인에서 number 값을 변경없이 출력만 하고 있습니다.

이 경우 for문에서 number와 &number의 차이가 있을까요? 두 경우 모두 fibonacci 배열의 값을 변경하지 않으면 그냥 number를 쓰는 것이 나을까요?

답변 1

답변을 작성해보세요.

1

forhin님의 프로필

forhin

질문자

2023.01.28

제가 올린 질문이지만, 구글 검색을 하다보니 for each문 강의에서 놓친 것 같습니다.

&가 없으면, fibonacci배열의 값이 for문 안의 number변수로 일일이 복사가 되어 느리다고 하는데, 이렇게 이해하면 괜찮을까요?

Ambition님의 프로필

Ambition

2023.02.02

for-each문도 함수의 종류이기 때문에 파라미터를 참조자를 써서 입력하지 않으면 호출할 때 값이 하나씩 복사가 되서 느리다고 저도 교수님께 들었습니다.

그리고 교수님께서 웬만해서는 파라미터에 입력값을 넣을 때 const data_type&을 넣어주라고 하셨던것도 같아요!!

↓↓↓ 아래에서 참조한 글입니다.

https://stackoverflow.com/questions/15176104/range-based-loop-get-item-by-value-or-reference-to-const