首先定義倆結構體:
typedef struct
s0;typedef struct
s1;
首先想到的初始化方法是:
s0 s;
s.a0 = 1;
s.b0 = 2;
s1 ss;
ss.a1 = 3;
ss.b1 = 4;
ss.s0 = s;
或者是:
s0 s = ;
s1 ss= ;
但是很多人不知道其實還可以這樣初始化(用大括號括起來的病省略掉結構體名字的初始化方法,同樣適用於結構體陣列的初始化):
s0 s0 = ;
s1 s1[10] =
};
這種結構體陣列初始化不要太方便的說。直接用這個點省略繁瑣的結構體名,更有陣列直接使用省略號初始化。
整體的**:
#include #include typedef struct
s0;typedef struct
s1;int main(int argc, char **argv);
s1 s1[10] =
}; printf("%d\n", s1[2].s0.a0);
return 0;
}
C語言結構體初始化
1 2 test.c 3 2018 1 30 4 5 include 6 7 struct studen 12 13 14 15 int main void 16 19 20 number two 先定義再乙個個初始化 21 struct studen std2 22 std2.id 120 23 ...
C語言結構體的初始化
今天在工作時,看到了奇葩的結構體初始化方式,於是我查了一下c99標準文件和gcc的說明文件,終於搞清楚是怎麼回事了。假設有如下結構體定義 typedef struct mystruct 那麼結構體的初始化方式如下有三種 1 c89的初始化方式 mystruct test 這種初始化的優點是語法簡單,...
C語言 陣列與結構體初始化方法
本文的測試均在vs2015的開發環境下測試。陣列與結構體初始化方法 假設結構體為 struct node 1.定義變數後,再初始化int array 5 array 0 0 array 1 1 array 2 2 array 3 3 array 4 4 也可以用迴圈來賦值 struct node n...