구조체의 성명과 정의

2781 단어 C 언어
struct는 구조체 키워드이고 tag는 구조체의 표지이며 member-list는 구조체 구성원 목록이며 모든 구성원을 열거해야 한다.variable-list가 이 구조체에 대한 변수를 설명합니다.
struct tag

 {
 	member-list;
 } variable-list ;

코드 예:
struct Student
{
	char 	name[10];
	int   		age;
	int    	score[5];
}stu1;

구조체의 두 가지 정의 방법:
1. 일반 정의:
struct Student
{
	char 	name[20];
	int 		age;
	int		score[5];
};
struct Student s1 = {"zhangsan",22,{1,2,3,4,10}};

2. 꼬리 정의
struct
{
	char		name[10];
	int		age;
	int		score[5];
}stu1 = {"  ",20,{150,110,20,34,114}},stu2;

구조체 간에 서로 값을 부여할 수 있다
stu1 = stu2;이때stu2={"장삼",20,{150110,20,34114};
무명 구조체, 꼬리 정의를 통해서만 대상을 만들 수 있습니다
struct 
{
	char 	name[20];
	int 		age;
	int		score[5];
}s1,s2,s3;

구조체 포인터를 통해 동적으로 객체 작성
struct Student
{
	char 	name[20];
	int 		age;
	int		score[5];
}*s;

s = (struct Student*)malloc(sizeof(struct Student));

구조체의 구성원은 다른 구조체(구조체의 끼워넣기)를 포함할 수도 있고 자신의 구조체 유형을 가리키는 지침을 포함할 수도 있다. 보통 이런 지침의 응용은 체인 테이블과 트리 등 더욱 높은 데이터 구조를 실현하기 위한 것이다.
구조체의 중첩:
 struct SIMPLE
{
	char		name[10];
}

struct COMPLEX{
	char		name[100];
	struct	SIMPLE i;
};

포인터가 들어 있는 구조체:
struct NODE{
    char			name[10];
    struct	NODE	*next_node;
};

구조체 대상이 내부 요소에 어떻게 접근하는지;
정적 객체: 점 연산자 "."를 통해
struct 
{
	char 	name[20];
	int 	age;
	int	score[5];
}s1 = {"  ,20,{150,110,20,34,114}"},*p;
void main()
{
      p = &stu;
      printf("%s",stu.name);
      printf("%s",p->name);
}

동적 대상: 지향부호'->'를 통해 대상 내부에 바늘 요소가 존재하면 사용하기 전에 메모리 공간을 분배해야 한다.

좋은 웹페이지 즐겨찾기