FAVORITE/C++

Structure : 제일기본

Syumnny 2013. 4. 16. 06:22

 

 

변수에 메모리를 할당할 때 그룹이 필요한 경우가 있다. 전화번호부에 가족, 고등학교친구, 야식 같은 그룹을 지정하듯이 프로그램의 변수에도 꼭 함께 쓰이기 때문에 한번에 묶어놓으면 편한 것들이 있다. 이것들을 한 데 묶어 사용하는 방법으로는 몇 가지가 있지만 일단 제일 쉬운 structure에 대해 정리하려고 한다.

 

C++ allows you to group a set of variables together into a  single item known as a structure

 

교과서에서 말했듯이 structure는 단순히 몇 개의 변수를 한 데 묶는 역할만 한다.

 

대표적인 예를 가지고 와 보자.

열 명의 학생들의 성적을 정리하기로 한다. 그러면 우리가 알아야 할 것은

1. 학생의 이름

2. 수험번호

3. 성적

이라고 두자.

 

학생들은 이 세 변수를 모두 가지고 있다. 일일히 30(3개변수*10명)개의 변수를 지정하느니, 3개의 변수를 가지고 있는 하나의 그룹 - 즉 structrure - 을 만들어서 그 그룹을 학생 수만큼 만드는 것이 효율적일 것이다.

 

 

 Score
 Name
 Number
 Grade

 

이런 느낌이다.

 

선언하는 방법은 간단하다. main 밖에서 struct를 부르는 것. (무조건 main 바로 앞이다. 함수 선언하듯이 뒤에 써놓으면 인식못한다)

 

struct Score

{

string name;

int number;

double grade;

};

 

structure의 이름은 Score다. Score는 세 개의 변수를 가지고 있는데, 문자열인 name과 정수인 number, 소숫점 숫자인 grade다.

여기서 잊지 말아야 할 것은 structure 선언 마지막에 세미콜론(;)를 붙이는 것. structure 자체도 일종의 변수이므로 붙이는게 아닐까 하고 추측해본다.

 

 

이렇게 선언해놓은 structure는 메모리를 가지고 있지 않다. 그냥 이런 구조도 있다, 시스템에 말해놓은 것일 뿐. main 함수 안에서 다른 변수를 선언하듯이 Score를 선언해줘야 비로소 자신의 메모리를 가지게 된다.

 

int main()

{

Score student1;

...

}

 

이런 느낌이다. 그러면 student1이라는 이름을 가진 Score의 인스턴스가 생성된다.

 

structure 내부의 변수에 접근하려면 Dot operator(.)를 사용한다.

ex) student1.name

 

 

 

 

 

졸리니까 이까지만 하고 하나만 예로 들어놔야겠다.

 

 

Ex.

 

Time
hour
minute
second

 

를 가진 structure Time을 만들고 now라는 인스턴스를 생성해서 사용자에게 시간을 입력받아라.

 

#include <iostream>
using namespace std;

 

struct Time{
         int hour;
         int minute;
         int second;
};

 

int main(){
         Time now;
         cin >> now.hour >> now.minute >> now.second;

 

         return 0;
}

'FAVORITE > C++' 카테고리의 다른 글

Structure : nested structure  (0) 2013.04.18
Structure : initialization  (0) 2013.04.17