2014-04-07 2 views
-1

저는 프로그래밍에 익숙하지 않습니다. 저는 C에서 C++로 옮겨 가고 있습니다. 나는 C에서 전에 보지 못했던 것을 만났습니다. 함수 선언이나 매개 변수를 전달할 때가끔 형식 뒤에, &이 바로 따라옵니다. 예를 들어, 프로젝트 중 하나에서 Customer라는 구조체를 사용하고 일부 함수는 Customer&을 전달합니다. 앰퍼샌드가 앞에 오는 것과 반대되는 이유는 무엇입니까? 감사! 함수를 정의 할 때유형 뒤에 '&'를 넣으십시오.

int x = 16; 
int& y = x; 
cout << y; 

로 대신 쓸 수

int x = 16; 
int* y = &x; 
cout << *y; 

는, 참조 변경 기능을 할 수 있습니다 : C++에서

+2

[참조] (http://en.wikipedia.org/wiki/Reference_%28C%2B%2B%29) - 이제 알 수 있듯이 Google과의 차이점에 대해 자세히 알아볼 수 있습니다. 포인터; -o –

+0

아, 이제는 의미가 있습니다. – user3504959

+0

[C++에서 앰퍼샌드 (&) 기호는 어떻게 작동합니까?] (http://stackoverflow.com/questions/8857857/how-does-the-ampersand-sign-work-in-c) 가능한 중복 – Potatoswatter

답변

1

참조는 단순히 다음 코드를 실행하는 청소기 방법을 수 함수의 사용자가 모든 것 앞에 앰퍼샌드를 두지 않고 매개 변수의 값. 예 :

void func(int& a) 
{ 
    a = 5; 
} 

void main() 
{ 
    int A = 10; 
    func(A); 
    cout << A; // Will output '5' 
} 

는 의도가 명백한 경우를 제외하고 함수가 매개 변수의 값을 변경하는 것을 실현하지 않을 수 있습니다 구현을 확인하지 않고 같은 기능을 사용하여 프로그래머로,이주의하십시오. 보통 이런 식의 참조를 사용하는 대신 포인터 또는 return 문을 사용하는 것이 좋습니다.

대부분의 경우 별칭을 만들 수있는 쉬운 방법으로 참조가 표시됩니다.