C語(yǔ)言中結(jié)構(gòu)體(struct)的幾種初始化方法
本文給大家總結(jié)的struct數(shù)據(jù)有3種初始化方法
1、順序
2、C風(fēng)格的亂序
3、C++風(fēng)格的亂序
下面通過(guò)示例代碼詳細(xì)介紹這三種初始化方法。
1)順序
這種方法很常見,在一般的介紹C的書中都有介紹。順序初始化的特點(diǎn)是: 按照成員定義的順序,從前到后逐個(gè)初始化;允許只初始化部分成員;在被初始化的成員之前,不能有未初始化的成員。
示例:
struct User oneUser = {10, "Lucy", "/home/Lucy"};
2)亂序(C風(fēng)格)
順序的缺陷是必須按成員定義的順序逐個(gè)初始化,不能間隔。而亂序的方式則很好的解決了這個(gè)問(wèn)題,因?yàn)檫@種方式是按照成員名進(jìn)行。
示例:
struct User oneUser = { .name = "Lucy", .id = 10, .home = "/home/Lucy" };
3)亂序(C++風(fēng)格)
C++風(fēng)格的亂序初始化方式跟C風(fēng)格的一樣,只是它更常用在C++代碼里。
示例:
struct User oneUser = { name:"Lucy", id:10, home:"/home/Lucy" };
注意:不論是哪種方式,都允許只初始化部分成員;未被初始化的成員默認(rèn)為0(指針類型的成員默認(rèn)為NULL)。兩種亂序初始化方法,即可以用在C代碼中,也可以用在C++代碼中。
以上就是這篇文章的全部?jī)?nèi)容,希望大家能夠喜歡,如果有疑問(wèn)可以留言交流。
相關(guān)文章
Qt 使用QDialog實(shí)現(xiàn)界面遮罩的示例(蒙版)
界面遮罩在很多時(shí)候都可以用到,例如彈窗,本文主要介紹了Qt 使用QDialog實(shí)現(xiàn)界面遮罩的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04文件編譯時(shí)出現(xiàn)multiple definition of ''xxxxxx''的具體解決方法
以下是對(duì)文件編譯時(shí)出現(xiàn)multiple definition of 'xxxxxx'的解決方法進(jìn)行了詳細(xì)的分析介紹,如也遇到此問(wèn)題的朋友們可以過(guò)來(lái)參考下2013-07-07C++實(shí)現(xiàn)LeetCode(99.復(fù)原二叉搜索樹)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(99.復(fù)原二叉搜索樹),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07從零學(xué)習(xí)構(gòu)造系統(tǒng)之bazel示例詳解
這篇文章主要為大家介紹了從零學(xué)習(xí)構(gòu)造系統(tǒng)之bazel示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02C++使用chrono庫(kù)處理日期和時(shí)間的實(shí)現(xiàn)方法
C++11 中提供了日期和時(shí)間相關(guān)的庫(kù) chrono,通過(guò) chrono 庫(kù)可以很方便地處理日期和時(shí)間,本文主要介紹了C++使用chrono庫(kù)處理日期和時(shí)間的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下2021-09-09