

사용자가 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로 복사