C語言騷操作:結構體初始化方法
首先定義倆結構體:
typedef struct
{
int a0;
int b0;
}S0;
typedef struct
{
int a1;
int b1;
S0 s0;
}S1;
首先想到的初始化方法是:
S0 s;
s.a0 = 1;
s.b0 = 2;
S1 ss;
ss.a1 = 3;
ss.b1 = 4;
ss.s0 = s;
或者是:
S0 s = {1, 2};
S1 ss= {3, 4, s};
但是很多人不知道其實還可以這樣初始化(用大括號括起來的病省略掉結構體名字的初始化方法,同樣適用於結構體陣列的初始化):
S0 s0 = {
.a0 = 1,
.b0 = 2,
};
S1 s1[10] = {
[0 ... 9] = {
.a1 = 3,
.b1 = 4,
.s0 = s0,
}
};
這種結構體陣列初始化不要太方便的說。直接用這個點省略繁瑣的結構體名,更有陣列直接使用省略號初始化。
整體的程式碼:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int a0;
int b0;
}S0;
typedef struct
{
int a1;
int b1;
S0 s0;
}S1;
int main(int argc, char **argv)
{
S0 s0 = {
.a0 = 1,
.b0 = 2,
};
S1 s1[10] = {
[0 ... 9] = {
.a1 = 3,
.b1 = 4,
.s0 = s0,
}
};
printf("%d\n", s1[2].s0.a0);
return 0;
}
相關文章
- 簡單介紹C語言使用四種方法初始化結構體C語言結構體
- C語言結構體大小分析C語言結構體
- C語言結構體專題C語言結構體
- Go 語言 結構體和方法Go結構體
- C語言結構體作為形參C語言結構體
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- C語言教程——03 C語言結構C語言
- C語言-選擇結構C語言
- Go 語言 結構體Go結構體
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- 資料結構c語言實現順序表基本操作資料結構C語言
- C語言資料結構:雙向連結串列的增刪操作C語言資料結構
- “c語言+結構體+連結串列”實現名片系統C語言結構體
- C語言之結構體C語言結構體
- C語言學習筆記:結構體與指標C語言筆記結構體指標
- C語言位操作C語言
- Go 語言 結構體連結串列Go結構體
- C語言資料結構:單向迴圈連結串列的增刪操作C語言資料結構
- C語言資料結構:雙向迴圈連結串列的增刪操作C語言資料結構
- 【資料結構】用C語言實現單連結串列及其常見操作資料結構C語言
- C++語法-結構體C++結構體
- C語言中結構體感悟C語言結構體
- go語言學習-結構體Go結構體
- C語言兩結構體之間的成員互換C語言結構體
- 如何系統學習C 語言(中)之 結構體篇結構體
- 資料結構 順序棧(c語言)資料結構C語言
- 資料結構雜湊表(c語言)資料結構C語言
- C語言資料結構:鏈式佇列的建立及其出入隊操作C語言資料結構佇列
- c語言圖書館管理系統----學會使用結構體C語言結構體
- c語言基礎筆記DAY7_結構體共用體列舉C語言筆記結構體
- C語言單向連結串列的增刪操作C語言
- 資料結構C語言|佇列相關資料結構C語言佇列
- C語言開發windows程式主要程式結構C語言Windows
- go語言之結構體和方法Go結構體
- C語言 第八章 結構體與共用體 重點 典型題C語言結構體
- 實驗6 C語言結構體、列舉應用程式設計C語言結構體程式設計
- C語言學習方法,怎麼學習C語言?C語言