菅構造
9249 ワード
struct構造体の定義
構造体はstructのキーワードに続く構造体名で定義される.ブレースの内部では、メンバー変数は宣言されますが、初期化されません.指定されたコードブロックは、名前
Person
宣言されたメンバー変数name
and age
.// `struct` keyword and structure name
struct Person{
// uninitialized member variables
char* name;
int age;
};
struct構造体の初期化
構造データ型は、structキーワードを使用して、定義された構造型を使用して初期化されます.与えられたコードブロックは、初期化する2つの方法を示します
Person
型構造体person1
and person2
.// `Person` structure declaration
struct Person{
char* name;
int age;
};
// designated initialization with member variable names
struct Person person1 = {.name = "Cosmo", .age = 36};
// implicit initialization following order of member variables
struct Person person2 = {"George", 29};
カスタムデータ型
構造体は、複雑なデータを表すために使用されるカスタムデータ型の定義を許可します.構造のカスタマイズは、正確に現実世界のデータをモデル化する柔軟性を提供します.
構造を持つデータ型のグループ化
構造体は、単一のユーザー定義型に異なるデータ型をグループ化できます.これは、単一の型に同じデータ型をグループ化することができる配列とは異なります.指定されたコードブロックは、名前
Person
さまざまな基本データ型をメンバー変数とします.// `Person` structure definition
struct Person{
// member variables that vary in type
char* name;
int age;
char middleInitial;
};
ドット表記によるメンバー変数へのアクセス
初期化された構造体変数はドットでアクセスできます
.
) 演算子.与えられたコードブロックはPerson
名前person1
名前にアクセスするmember
変数printf()
文.// `Person` structure declaration
struct Person{
// member variables
char* name;
int age;
char middleInitial;
};
// initialization of `person1`
struct Person person1 = {.name = "George", .age = 28, .middleInitial = "C"};
// accessing `name` in `person1`
printf("My name is %s", person1.name);
// OUTPUT: My name is George
構造体変数
構造体内で定義された変数はメンバー変数として知られています.指定されたコードブロックは、指定された構造体を定義します
Person
メンバ変数name
活字char*
, and age
活字int
.// Person structure declaration
struct Person{
// member variables
char* name;
int age;
};
構造型ポインタ
を使用して構造体へのポインタを定義できます
struct
キーワード、構造型、およびポインタ*
) シンボル.初期化された構造体のメモリアドレスはシンボルを使用してアクセスできます&
). 与えられたコードブロックはPerson
データ型person1
.// Person structure declaration
struct Person{
// member variables
char* name;
int age;
};
// person1 initialization
struct Person person1 = {"George", 28};
// person1Pointer initializated to the memory address of person1
struct Person* person1Pointer = &person1;
矢印通知でのメンバー変数へのアクセス
構造体のメンバ変数は、矢印のポインタを使用してアクセスできます
->
) 表記.与えられたコードブロックはPerson
personType 1という名前のポインター型.インサイドprintf()
ステートメントname
メンバー変数person1
が矢印を使ってアクセスされる(->
) 表記.// `Person` structure declaration
struct Person{
// member variables
char* name;
int age;
};
// `person1` intialization
struct Person person1 = {"Jerry", 29};
// `person1Pointer` intialization to memory address to `person1`
struct Person* person1Pointer = &person1;
// accessing `name` through `person1Pointer`
printf("My name is %s", person1Pointer->name);
// OUTPUT: My name is Jerry
機能を渡す
構造体は、
struct
キーワードは関数定義の構造名を続けます.指定したコードブロックは、関数名myFunc()
とPerson
パラメータperson1
.// Person structure declaration
struct Person{
// member variables
char* name;
int age;
};
// declaring Person type parameter
void myFunc(struct Person person1);
関数への構造体ポインタの渡し
構造ポインタは、
struct
キーワード、構造体名、およびポインタシンボル*
) 関数定義で.指定したコードブロックは、関数名myFunc()
とPerson
ポインタパラメータperson1 pointer
.Reference
この問題について(菅構造), 我々は、より多くの情報をここで見つけました https://dev.to/ilosrim/lesson-08-structures-5ae8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol