작성
·
475
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
제가 올린 질문이지만, 구글 검색을 하다보니 for each문 강의에서 놓친 것 같습니다.
&가 없으면, fibonacci배열의 값이 for문 안의 number변수로 일일이 복사가 되어 느리다고 하는데, 이렇게 이해하면 괜찮을까요?
for-each문도 함수의 종류이기 때문에 파라미터를 참조자를 써서 입력하지 않으면 호출할 때 값이 하나씩 복사가 되서 느리다고 저도 교수님께 들었습니다.
그리고 교수님께서 웬만해서는 파라미터에 입력값을 넣을 때 const data_type&을 넣어주라고 하셨던것도 같아요!!
↓↓↓ 아래에서 참조한 글입니다.
https://stackoverflow.com/questions/15176104/range-based-loop-get-item-by-value-or-reference-to-const