반응형
문제
앞의 예제를 보지 말고 빈칸을 채워보자. 포인터 변수를 어떻게 정의하면 아래와 같은 결과가 나올까?
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
반응형
'공부 > 문제답안' 카테고리의 다른 글
[두들낙서] 문자열을 매개변수로 받아 그 문자열에서 공백을 제거하여 출력하는 함수 작성 예제 (0) | 2016.10.22 |
---|---|
[두들낙서] 정수 하나를 매개변수로 받아 그 수가 짝수이면 0, 홀수이면 1을 반환하는 함수 예제 (0) | 2016.10.22 |
포인터 변수를 가리키는 포인터 변수 답안 (0) | 2016.10.09 |
C언어 포인트 이해 void 포인터 변수의 크기 답안 (0) | 2016.10.09 |
구조제 변수의 덧셈 답안 (0) | 2016.10.03 |