본문 바로가기

프로그래밍/C++

기초중기초(구조체 struct)


struct 변수는 배열처럼 방을 여러개 가지고 있으나 각 방의 모양(크기)이 다를 수 있으며 각 방의 이름도 번호를 붙이는 것이 아니고 struct 변수 선언시 지정해준다.

 struct 변수에 대해서도 아래 사항을 알고 있어야 한다.
* 선언하는 법
선언의 효과
각 방의 이름
각 방에 데이타 넣기
각 방의 데이타 출력

*기본모양
선언하는 법 struct {int x; char y;} z;
선언의 효과 방 2개가 생긴다.
각 방의 이름 전체는 z, 각 방은 z.x, z.y
각 방에 데이타 넣기 z.x=9; z.y='d';

각 방의 데이타 출력 cout << z.x << z.y;

*사용법

1) tag 붙이기: {A} 에 이름(태그)을 붙이면 {A} 대신 이름을 쓸 수 있다.

☞struct {int x; char y;} z; // 변수 z 선언. z는 {int x; char y;} 형태. 태그를 안쓰는 경우

☞struct zz {int x; char y;}; // {int x; char y;}에 zz 라는 이름 붙이기. 앞으로
                                     //{i
nt x; chary;} 대신 zz 를 쓸 수 있다.

☞struct zz k; // struct {int x; char y;} k; 와 동일(사실은 조금 다르게 취급)
zz k; // 태그를 쓸 경우 struct는 생략해도 된다. 변수 k는 zz 라는
      
// 데이타타입이고 zz 는 {int x; char y;} 이므로
       
// struct {int x; char y;} k; 와 동일(사실은 조금 다르게 취급)

☞struct abc {int x; int y; char z;} rr; 
// 변수 rr 선언. 동시에 {int x; int y; char z;} 대신 앞으로 abc 라는 tag를 쓰겠다고 선언.

☞struct abc bb; // 변수 bb 선언. bb는 {int x; int y; char z;} 형태의 구조체

ex)국,영,수 성적입력하여 출력하는 프로그램
________________________________________________
#include <iostream>
#include <stdlib.h>
using namespace std;

struct student{
 char name;
 int kor;
 int eng;
 int math;
};

struct student s[5];//5명으로 제한
int main()
{
 int i;
  for(i=0;i<5;i++)
  {cout<<"이름입력"<<endl;
  cin>>s[i].name;
  cout<<"국어성적입력"<<endl;
  cin>>s[i].kor;
  cout<<"영어성적입력"<<endl;
  cin>>s[i].eng;
  cout<<"수학성적입력"<<endl;
  cin>>s[i].math;
  system("cls"); //화면 깨끗히 지우기
  }
  
  for(i=0;i<5;i++)
  {
   cout<<"이름     :" <<s[i].name<<endl;   
   cout<<"국어성적 : "<<s[i].kor<<endl;     
   cout<<"영어성적 : "<<s[i].eng<<endl;
   cout<<"수학성적 : "<<s[i].math<<endl;
   cout<<"-------------"<<endl;
  }
 
}

 






출저:인하대학생
수정:http://first-reverse.tistory.com

'프로그래밍 > C++' 카테고리의 다른 글

약간의기초(포인터)  (0) 2011.01.04
기초중기초(함수)  (0) 2011.01.04
기초중기초(배열 array)  (0) 2011.01.03
기초중기초(반복문 for)  (0) 2011.01.03
기초중기초(반복문 while)  (0) 2010.12.27