C++複雑なタイプ
1220 ワード
ベース:
1.代入:
構造体の付与値は、値伝達が参照伝達ではないことです.
構造体(struct):
1.構造体の一般的な定義:
2.typedef:このキーワードを使用して、複合タイプを含むタイプの名前を変更し、参照と定義の結合度を低減します.
3.構造体メモリの計算規則:
(1)複雑なタイプのメモリ割当ては、前のN個の変数が占めるメモリをN+1個目の変数で除算しなければならない.N+1個目が除算できない場合は、N個目(2)のすべての変数が占めるメモリの総和を最大の変数で除算し、メモリを最後の変数の後に補うことができる.
複雑なタイプを定義する際には、変数の前後順を考慮して、無駄なメモリを最小限に抑える必要があります.
4.構造体の中の変数の個数:構造体のアドレスは、その最初のサブのアドレスと同じです.したがって、アドレスによってオブジェクトの個数を分割すると、構造体のオブジェクトの個数はそのサブの個数となる.コンビネーションオブジェクトは、データが同じメモリに保存されているため、1つしかありません.
コンビネーション(union):コンビネーションには1つの子しか機能しないので、最後に割り当てられたのは誰なのかに注意しなければなりません.
1.連合体の定義:
2.連合体メモリの計算:連合体のメモリはその中の最大の1つのサブの長さ以上である(そして、長さがすべてのサブの整数倍であることを保証する).
1.代入:
構造体の付与値は、値伝達が参照伝達ではないことです.
構造体(struct):
1.構造体の一般的な定義:
typedef struct tagSTUDENT{
int id;
char name[20];
bool sex;
}STUDENT,*PSTUDENT;
struct tagSTUDENT1{
int id;
char name[20];
bool sex;
}initStudent = {123,"222",true};
2.typedef:このキーワードを使用して、複合タイプを含むタイプの名前を変更し、参照と定義の結合度を低減します.
3.構造体メモリの計算規則:
(1)複雑なタイプのメモリ割当ては、前のN個の変数が占めるメモリをN+1個目の変数で除算しなければならない.N+1個目が除算できない場合は、N個目(2)のすべての変数が占めるメモリの総和を最大の変数で除算し、メモリを最後の変数の後に補うことができる.
複雑なタイプを定義する際には、変数の前後順を考慮して、無駄なメモリを最小限に抑える必要があります.
4.構造体の中の変数の個数:構造体のアドレスは、その最初のサブのアドレスと同じです.したがって、アドレスによってオブジェクトの個数を分割すると、構造体のオブジェクトの個数はそのサブの個数となる.コンビネーションオブジェクトは、データが同じメモリに保存されているため、1つしかありません.
コンビネーション(union):コンビネーションには1つの子しか機能しないので、最後に割り当てられたのは誰なのかに注意しなければなりません.
1.連合体の定義:
union tagAny{
char c;
short n;
int i;
float f;
double d;
}
2.連合体メモリの計算:連合体のメモリはその中の最大の1つのサブの長さ以上である(そして、長さがすべてのサブの整数倍であることを保証する).