본문 바로가기
공부/문제답안

뇌를 자극하는 C++ Exercise 11-2 답안

반응형

문제

앞의 예제를 보지 말고 빈칸을 채워보자. 포인터 변수를 어떻게 정의하면 아래와 같은 결과가 나올까?


float f1 = 10.0f;

float f2 = 20.0f;

[               ] p = &f1;

p = &f2;            // OK

*p = 30.0f;        // FAIL


예제소스

설명


포인터 변수에 주석으로 FAIL을 해놓았다. 그러므로 float* p = &f1;이 아닌 const float* p = &f1;이 되는 것이다. 포인터 자체에 상수값을 씌운 것이다. 



이렇게 하면 비주얼스튜디오에서 *p에만 오류표시가 나온다.

상수라서 30.0f로 초기화되지 않는 것이다.


문제 출처

뇌를 자극하는 C++ 프로그래밍 11장 포인터-정보에 대한 정보 pp.254 Exercise 11-2


반응형