1. 程式人生 > >定義結構體時的初始化預設值

定義結構體時的初始化預設值

結構體變數定義時的初始化問題:

預設值同變數一樣,int型的為0,指標型的為“NULL”------------並不是整個結構體為NULL,其中的int型還是有值0的,只是指標型的為NULL

#include <iostream>
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

但是,初始化的值是不確定的,需要自己清空。
一般是會初始化為0,但建議不要依賴自動初始化,自己動手清空,比較保險。

如果只是宣告的話,編譯器是不會為此宣告分配空間的

struct my
{
	int a;
	int b;
	int *c;
};

  這樣是沒有初始值的

轉自:https://blog.csdn.net/xueruifan/article/details/46443645