2013-03-17 1 views
-3

와 변수에 대한 참조를 초기화한다 다음을 수행하십시오C : 무엇을 더블

double &number = 12.4; 

그것은 12.4

같은 2 유형의 변수에 참조를 할당해야하지만, 변수에 대한 참조는 주소가 아닌 포인터의. 왜 작동합니까? 불법 구문의

double & Getsomenumber() 
{ 
    static double number = 12.4; 

    double &anotherNumber = number; 

    return anotherNumber;} 
+0

이 함수에는 로컬 개체에 대한 참조가 반환되는 문제가 있습니다. 함수가 반환 되 자마자 값은 사라집니다. –

+0

예 ..................... – user1938465

+0

C? 참조로? 안돼 ... –

답변

3

, 당신은 C++을 의미한다면, 그건 당신이 const 참조를이 비 임시직을 바인딩 할 수 없습니다, 또한 유효 C.

에 대한 참조가 더 이상 존재하지 않는다. const double& number = 12.4가 작동합니다.

그래서 "왜 작동합니까?" 유효한 질문이 아닙니다. C가 아니라 C++이 아닙니다.

하지만 참조 그냥 별칭 포인터

번호의 주소 변수에 대한 참조하지 않습니다 - 당신은 기본적으로 다른 이름을 통해 같은 변수를 참조하고 있습니다.

0

실제로이 방법으로 작업을해야하고 무엇 :

const double& number = 12.4; 

은 실제로 당신이 const없이 CONST 표현에 대한 참조를 만들 수 없습니다해야합니다.