검색결과 리스트
글
구조체란 서로 관련있는 하나 이상의 변수들을 묶어 사용하는 것을 말합니다.
예를 들면 변수 중에 신원 정보를 파악할 수 있도록 이름, 나이, 성별등을 입력하는 변수들을 하나로
묶어 사용하는 것을 말합니다.
Ⅰ. 구조체 정의
구조체를 정의 할때의 형식은 아래와 같은 형식으로 정의합니다.
struct identity{
int age;
char name[20];
char gender[6];
};
identity란 구조체 명을 의미하고 안에 있는 변수들은 identity라는 구조체에 포함된 변수들입니다.
Ⅱ. 구조체의 선언
구조체를 선언하는 방식에는 여러가지의 방법들이 있습니다.
①
struct identity{
int age;
char name[20];
char gender[6];
} iden;
②
struct identity{
int age;
char name[20];
char gender[6];
};
struct identity iden;
③
struct identity{
int age;
char name[20];
char gender[6];
};
typedef struct identity IDEN;
IDEN iden;
④
typedef struct identity{
int age;
char name[20];
char gender[6];
}IDEN;
IDEN iden;
위와 같이 여러가지의 선언 방법이 있습니다.
③번과 ④번에 나온 typedef라는 것은 구조체 뿐만 아니라 다른 곳에서도 유용하게 널리쓰입니다.
typedef의 기능은 변수를 선언할 때 자료형의 이름을 사용자의 임의대로 바꿔줄 수 있습니다.
예를 들어 unsigned int * 와 같이 긴 자료형을 일일이 칠려면 귀찮기도 하고 불편합니다.
이때 typedef unsigned int* P_UNIT; 를 입력하여 unsigned int*을 P_UNIT로
바꿔줄 수 있습니다.
위와 같이 typedef를 사용하실 때에는 typedef (변경할 자료형)(변경후 자료형)형식으로 사용 합니다.
Ⅲ. 구조체 사용
구조체를 사용할 때는 아래와 같이 사용 합니다.
#include <stdio.h>
struct identity{ // 구조체의 정의
int age;
char name[20];
char gender[6];
} iden; // 구조체의 식별자
int main (void){
struct identity iden; // 구조체 변수의 선언
printf("Name? : "); scanf("%s",iden.name);
// 구조체를 사용할 때는 구조체 명.변수 명 으로 사용
printf("Age? : "); scanf("%d",&iden.age);
printf("Gender? : "); scanf("%s",iden.gender);
}
위의 주석에서의 설명과 같이 다른 함수내에서 사용하기 위해 구조체를 선언 해줍니다.
main 함수에서 iden.name 같은 형식은 구조체를 사용하기 위한 형식으로 (구조체 명.변수명)으로
사용합니다.
★ 구조체를 사용하여 함수의 인자로 전달과 반환 대입연산은 가능하지만 사칙연산은 안됩니다.
'Programming > C' 카테고리의 다른 글
[ Project ] Stack_Linked List (0) | 2015.08.27 |
---|---|
연결 리스트 ( Linked List ) (0) | 2015.08.27 |
Stack과 Queue (0) | 2015.08.26 |
Call-by-value 와 Call-by-reference (0) | 2015.08.26 |
2차원 배열 (0) | 2015.08.26 |
RECENT COMMENT