2011-10-01 2 views
0

아마도 단순한 질문이지만, 나는 레퍼런스와 배열을 인수로 항상 혼동하고 있습니다. 다음은 C++에서 유효합니까? 즉, 은 function1의 전화 이후에 10 값을 가지 는가?레퍼런스로서의 배열 엔트리

void function1(int &data) 
{ 
    data = 10; 
} 

void function2(void) 
{ 
    int array[2]; 

    function1(array[0]); 
} 

설명해 주셔서 감사합니다.

+0

이 테스트를 직접 수행하지 못하게 한 요인은 무엇입니까? –

답변

2

네, 그 코드는 완벽하게 유효한 코드입니다.

0

다음은 C++에서 유효합니까?

예. 인

[0] 경우 니펫 comiples 전혀 기능 1의 호출 후 값 10을 가지고 배열 하는가?

예.

컴파일, 실행 및 실험을 시도하십시오. 다음 질문 - 그리고 약간 더 나은 - 질문.

+0

실제로 사람들에게 컴파일하고 실험하는 것은 잘못된 것이라고 생각합니다. 모든 실행이나 달의 다른 단계에서 다르게 실행하는 것은 UB의 성격이며, 내가 잘 정의 된 것인지 잘 모르는 경우, 오늘 테스트했을 때 효과가 있었던 것이 내일은 여전히 ​​작동 할 것이라고 생각하는 것은 좋지 않습니다. 행동. 그것은 컴파일합니까? 물론, 당신은 그것을 테스트 할 수 있습니다. 그게 유효합니까? 가장 확실한 것은 아닙니다. – Puppy

+0

@DeadMG : 사람들에게 컴파일하고 실험하는 것이 왜 틀린 지요? 프로그램이 잘 컴파일되고 실행되면 UB가 아니라는 것을 언제 알 수 있습니까? 또한 ** ** 예 외에도 ** 내가 말했지. – Nawaz

+0

@DeadMG : 또한, 당신은 말했다 * 그것을 컴파일합니까? 물론, 당신은 그것을 테스트 할 수 있습니다. 그게 유효합니까? ** 가장 확실하게 ** 아닙니다. * MOST 확실히 아닙니다? 그게 무엇을 의미하는지 아십니까? – Nawaz