소프트웨어/C++

[2004년 중간 5번] 최대 / 최소값 - 포인터 / 삼항 연산자

카켈 2007. 2. 26. 16:47




목적
  - 포인터를 이해한다.
  - 삼항 연산자를 자유롭게 쓴다.

문제

코드

#include <iostream>

using namespace std;

int main(void)
{
 float afIn[4] = {0};
 int i = 0;
 float *fMax,*fMin;
 fMax = fMin = &afIn[0];

 cout << "네 개의 실수를 입력하세요 : ";
 while(i < 4)
 {
  cin >> afIn[i];
  fMax = (*fMax < afIn[i] ? &afIn[i] : fMax);
  fMin = (*fMin > afIn[i] ? &afIn[i] : fMin);
  i++;
 
 }

 
 cout << "최소값 : " << *fMin << endl << "최대값 : " << *fMax << endl;

 return 0;
}


해설
  - 포인터로 *[변수] 선언시 [변수] 는 그 값이 저장될 주소(reference)를 가리키며 *[변수]를 하면 그 저장된 주소로 가면 가지고 있는 값을 가리킵니다.(derefernce)
  - 포인터 아닌 일반 변수가 포인터에서 쓰는 주소를 저장하고 싶으면 앞에 & (reference) 연산자를 붙이면 됩니다. C++ 에서 새로 추가된 기능 중 하나 입니다.
  - 삼항 연산자는 많이 풀어 봐서 이해 되실 겁니다. 유사 예제들을 검색해서 보시기 바랍니다.

참고
  -유사문제