淺談C語(yǔ)言中結(jié)構(gòu)體的初始化
1、初始化
typedef struct _TEST_T {
int i;
char c[10];
}TEST_T;
TEST_T gst = {1, “12345”};//可以初始化,設(shè)置i為1,s為一個(gè)字符串.
TEST_T gst = {1};//初始化個(gè)數(shù)少于實(shí)際個(gè)數(shù)時(shí),只初始化前面的成員。
TEST_Tgst = {.c=“12345”};//有選擇的初始化成員。
2、復(fù)合字面量。
gst = (TEST_T){122, "1256"};//這是一個(gè)賦值語(yǔ)句,也可以作為初始化??梢猿霈F(xiàn)在程序的任何地方。
當(dāng)然也可以使用復(fù)合字面量來(lái)初始化:
gst = (TEST_T){.i=122, .c="123"};
3、結(jié)構(gòu)體數(shù)組
可以用多個(gè)大括號(hào)括起來(lái):
TEST_T gst[10] = {{},{},{},{}}
也可以初始化其中的一個(gè)元素:
TEST_T gst[10] = {[2]={}, [3]={}}
也可以使用復(fù)合字面量:
TEST_T gst[10] = {[2].i=0, [3].i={}}
為什么要初始化:
1、對(duì)局部變量初始化可以防止隨機(jī)值產(chǎn)生的危害。
2、對(duì)全局變量初始化可以告訴編譯器,這是一個(gè)定義,而不是一個(gè)聲明。(如果兩個(gè)c中有相同的全局變量定義,且沒(méi)有初始化,編譯器會(huì)認(rèn)為第二個(gè)是聲明而不是定義。)
- C語(yǔ)言中結(jié)構(gòu)體、聯(lián)合體的成員內(nèi)存對(duì)齊情況
- C語(yǔ)言中結(jié)構(gòu)體(struct)的幾種初始化方法
- C語(yǔ)言 結(jié)構(gòu)體(Struct)詳解及示例代碼
- 詳解C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針
- C語(yǔ)言 結(jié)構(gòu)體數(shù)組詳解及示例代碼
- C語(yǔ)言中的結(jié)構(gòu)體的入門(mén)學(xué)習(xí)教程
- C語(yǔ)言結(jié)構(gòu)體定義的方法匯總
- 深入理解C語(yǔ)言內(nèi)存對(duì)齊
- C語(yǔ)言、C++內(nèi)存對(duì)齊問(wèn)題詳解
- C語(yǔ)言中結(jié)構(gòu)體與內(nèi)存對(duì)齊實(shí)例解析
相關(guān)文章
詳解C語(yǔ)言中printf輸出的相關(guān)函數(shù)
這篇文章主要介紹了C語(yǔ)言中printf輸出的相關(guān)函數(shù)總結(jié),是C語(yǔ)言入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08
C++ 字符串string和整數(shù)int的互相轉(zhuǎn)化操作
這篇文章主要介紹了C++ 字符串string和整數(shù)int的互相轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
解析C++浮點(diǎn)數(shù)無(wú)效值的定義與無(wú)效值判定的小結(jié)
本篇文章是對(duì)C++中浮點(diǎn)數(shù)無(wú)效值的定義與無(wú)效值的判定進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
ubuntu 下編譯C++代碼出現(xiàn)的問(wèn)題解決
這篇文章主要介紹了ubuntu 下編譯C++代碼出現(xiàn)的問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2015-03-03
C++實(shí)現(xiàn)大整數(shù)乘法(字符串乘法)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)大整數(shù)乘法、字符串乘法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
QT網(wǎng)絡(luò)編程Tcp下C/S架構(gòu)的即時(shí)通信實(shí)例
下面小編就為大家?guī)?lái)一篇QT網(wǎng)絡(luò)編程Tcp下C/S架構(gòu)的即時(shí)通信實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
C++實(shí)現(xiàn)LeetCode(768.可排序的最大塊數(shù)之二)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(768.可排序的最大塊數(shù)之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++報(bào)錯(cuò) XX does not name a type;
這篇文章主要給大家介紹了C++報(bào)錯(cuò) XX does not name a type;field `XX’ has incomplete type解決方案,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2023-08-08
基于C++的攝像頭圖像采集及拼接程序的簡(jiǎn)單實(shí)現(xiàn)
本程序是在?ubuntu14.04?平臺(tái)下實(shí)現(xiàn)的,在本項(xiàng)目目錄下,已經(jīng)有編譯生成的可執(zhí)行程序,其中Camera_to_Frmae.cpp是我們從雙攝像頭實(shí)時(shí)抓取單幀圖像的源碼,對(duì)基于C++的攝像頭圖像采集及拼接程序的實(shí)現(xiàn)感興趣的朋友一起看看吧2022-01-01
C++實(shí)現(xiàn)統(tǒng)計(jì)代碼運(yùn)行時(shí)間計(jì)時(shí)器的簡(jiǎn)單實(shí)例
這篇文章主要介紹了 C++實(shí)現(xiàn)統(tǒng)計(jì)代碼運(yùn)行時(shí)間計(jì)時(shí)器的簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07

