사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입
하나의 타입
으로 나타냄 (↔ 배열)// 구조체를 구별하기 위한 이름
struct 태그명
{
// 구조체 구성하는 변수(=멤버/멤버 변수) 선언
멤버변수1의타입 멤버변수1의이름;
멤버변수2의타입 멤버변수2의이름;
...
};
- 구조체 안에 어떤 변수들이 들어가는지 알려주기
- 구조체 형태만 정의한 것이므로 데이터 저장 X
struct 태그명 변수명;
형식으로 선언
인스턴스
를 만들 수 있도록 설계되어 있다.main
함수 바깥에 정의한다.;
전에 변수 지정 가능하며 구조체 정의와 선언(S
)을 동시에 가능하다main
함수 내의 구조체#include <stdio.h>
int main() {
struct{
int age;
int grade;
}tmp = {20, 1};
printf("age = % d 살: grade = %d 학년\n" , tmp.age , tmp.grade);
return 0;
}
struct Student s1, s2, s3;
s1, s2, s3
의 메모리 주소는 다르기 때문에 실제 관련 없다: 같은 형태의 구조체 변수라면 다른 구조체 변수에 할당 가능한 것
: 인스턴스 복제하는 것으로 멤버값도 함께 복사됨
strcpy( )
char origin[] = "BlockDMask";
char dest[100];
strcpy(dest, origin);
: 함수의 이름은 str (=string), cpy (=copy)
즉, 문자열을 복사하는 함수
: origin에 있는 문자열 전체를 dest로 복사