構造体を定義するときの初期化のデフォルト値
607 ワード
構造体変数定義時の初期化の問題:
デフォルト値は変数と同じで、int型は0、ポインタ型は「NULL」---------構造体全体がNULLであるわけではありません.int型には0の値がありますが、ポインタ型はNULLです.
出力結果:1 0
ただし、初期化の値は不確定で、自分でクリアする必要があります.通常は0に初期化されますが、自動初期化に頼らず、自分でクリアして保険をかけることをお勧めします.
宣言のみの場合、コンパイラはこの宣言にスペースを割り当てることはありません.
これで初期値はありません
変換元:https://blog.csdn.net/xueruifan/article/details/46443645
デフォルト値は変数と同じで、int型は0、ポインタ型は「NULL」---------構造体全体がNULLであるわけではありません.int型には0の値がありますが、ポインタ型はNULLです.
#include
using namespace std;
struct
{
int a;
int b;
int *c;
}t = { 1 };
int main()
{
printf("%d %d %d",t.a,t.b,t.c);
return 0;
}
出力結果:1 0
ただし、初期化の値は不確定で、自分でクリアする必要があります.通常は0に初期化されますが、自動初期化に頼らず、自分でクリアして保険をかけることをお勧めします.
宣言のみの場合、コンパイラはこの宣言にスペースを割り当てることはありません.
struct my
{
int a;
int b;
int *c;
};
これで初期値はありません
変換元:https://blog.csdn.net/xueruifan/article/details/46443645