2014-12-09 4 views
0

제 질문은 : 함수의 입력 인수 중 하나를 출력 변수로 사용할 수 있음을 CUDA 예제에서 보았습니다. 예 : 두 개의 정수 c = a + b를 더합니다.입력 인수를 출력으로 사용하기

void function AddT(int a,int b,int c){ 
    c=a+b; 
} 

그러나 이것은 작동하지 않습니다. 이 함수는 주 프로그램의 c 값을 변경하지 않습니다. 누가 수정할 수 있고 함수가 C의 값을 변경할 수 있습니까?

답변

3

참조로 변수 c를 전달하십시오.

void function AddT(int a, int b, int& c) 
{ 
    c = a + b; 
} 

이렇게하면 함수에서 변경 한 c의 모든 변경 사항이 함수가 끝난 후에도 남게됩니다. 내 말씨는 꽤 가난하다. 당신은 더 많은 정보를 보려면 여기를 찾아보실 수 있습니다 :

Pass by Reference/Value in C++

What's the difference between passing by reference vs. passing by value?

+3

당신은이 '오른쪽 대신 사본의 전달 된 개체에 대한 별칭을 c' 것 말인가요? – Deduplicator

+0

예, 설명해 주셔서 감사합니다. 함수를 호출 할 때 전달한 인수와 c는 서로 다른 변수 이름을 갖지만 둘 다 동일한 객체를 나타냅니다. – zachyee

관련 문제