C語言中結(jié)構(gòu)體(struct)的幾種初始化方法
本文給大家總結(jié)的struct數(shù)據(jù)有3種初始化方法
1、順序
2、C風(fēng)格的亂序
3、C++風(fēng)格的亂序
下面通過示例代碼詳細(xì)介紹這三種初始化方法。
1)順序
這種方法很常見,在一般的介紹C的書中都有介紹。順序初始化的特點(diǎn)是: 按照成員定義的順序,從前到后逐個(gè)初始化;允許只初始化部分成員;在被初始化的成員之前,不能有未初始化的成員。
示例:
struct User oneUser = {10, "Lucy", "/home/Lucy"};
2)亂序(C風(fēng)格)
順序的缺陷是必須按成員定義的順序逐個(gè)初始化,不能間隔。而亂序的方式則很好的解決了這個(gè)問題,因?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++代碼中。
以上就是這篇文章的全部內(nèi)容,希望大家能夠喜歡,如果有疑問可以留言交流。
相關(guān)文章
C/C++編譯報(bào)錯(cuò)printf was not declared in 
這篇文章主要介紹了C/C++編譯報(bào)錯(cuò)printf was not declared in this scope問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
數(shù)據(jù)結(jié)構(gòu)之堆的具體使用
本文主要介紹了數(shù)據(jù)結(jié)構(gòu)之堆的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

