16鋼構造体
17919 ワード
16.構造体
16-1. 構造体の定義と宣言
複数の変数を組み合わせてオブジェクトを表す場合に使用します.
構造体名{
資料型1変数名1;
資料型2変数名2;
...
};struct Student {
char studentId[10];
char name[10];
int grade;
char major[100];
}
16-2. 構造変数の近似
構造内の変数にアクセスすると、温度(.)使用します.struct Student {
char studentId[10];
char name[10];
int grade;
char major[100];
}
struct Student s;
strcpy(s.studentId,"21221014");
strcpy(s.name,"이승희");
s.grade = 4;
strcpy(s.major,"기계공학과");
出力構造体の内容
struct Student{
char studentId[10];
char name[10];
int grade;
char major[100];
};
int main(void){
struct Student s;
strcpy(s.studentId,"21221014");
strcpy(s.name,"이승희");
strcpy(s.major,"기계공학과");
s.grade =4;
//구조체 내용 출력하기
printf("학번: %s\n",s.studentId);
printf("이름: %s\n",s.name);
printf("학년: %d\n",s.grade);
printf("학과: %s\n",s.major);
system("pause");
return 0;
}
struct Student s
はsという構造体変数を発表した.
strcpyは、s.grade=4";
などの文字列が宣言できないため、関数です.
構造体を宣言する.💥' ; '💥 くっつく.
構造体変数を使用する場合
struct Student{
char studentId[10];
char name[10];
int grade;
char major[100]
} s;
これにより、sというstudent構造体変数が宣言されます.このようにmain関数以外でもグローバル変数として使用できます.このように書く場合、通常は学生構造体が1つの変数しかない場合です.
構造体の初期化
struct Student {
char studentId[10];
char name[10];
int grade;
char major[100];
}
struct Student {
char studentId[10];
char name[10];
int grade;
char major[100];
}
struct Student s;
strcpy(s.studentId,"21221014");
strcpy(s.name,"이승희");
s.grade = 4;
strcpy(s.major,"기계공학과");
struct Student{
char studentId[10];
char name[10];
int grade;
char major[100];
};
int main(void){
struct Student s;
strcpy(s.studentId,"21221014");
strcpy(s.name,"이승희");
strcpy(s.major,"기계공학과");
s.grade =4;
//구조체 내용 출력하기
printf("학번: %s\n",s.studentId);
printf("이름: %s\n",s.name);
printf("학년: %d\n",s.grade);
printf("학과: %s\n",s.major);
system("pause");
return 0;
}
struct Student{
char studentId[10];
char name[10];
int grade;
char major[100]
} s;
int main(void){
struct Student s = {"21221014","이승희",4,"기계공학과"};
}
1つの構造体変数struct Student{
char studentId[10];
char name[10];
int grade;
char major[100]
} s = {"21221014","이승희",4,"기계공학과"};
16-3. typedef
typedefを使用すると、宣言を短くするために任意のデータ型を作成できます.
#include <stdio.h>
typedef struct {
char studentId[10];
char name[10];
int grade;
char major[100];
} Student;
int main(void){
Student s = {"21221014","이승희",4,"기계공학부"};
printf("학번: %s\n",s.studentId);
printf("이름: %s\n",s.name);
printf("학년: %s\n",s.grade);
printf("학과: %s\n",s.major);
system("pause");
return 0;
}
16-4. 構造ポインタ変数
前述したように、Student構造体をtypedefで宣言する場合、ポインタ変数として構造体が使用されます.
この場合、次のように、宣言されたメモリに構造体を入れます.
int main(void){
Student *s = malloc(sizeof(Student));
strcpy(s->studentId,"201221815");
strcpy(s->name,"이승희");
s->grade = 4;
strcpy(s->major,"기계공학부");
printf("학번: %s\n",s->studentId);
printf("이름: %s\n",s->name);
printf("학년: %d\n",s->grade);
printf("학과: %s\n",s->major);
system("pause");
return 0;
}
Reference
この問題について(16鋼構造体), 我々は、より多くの情報をここで見つけました https://velog.io/@nara7875/16강-구조체テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol