C/C++編程筆記:深入解析C語(yǔ)言結(jié)構(gòu)!帶你看懂C語(yǔ)言代碼
什么是結(jié)構(gòu)?
結(jié)構(gòu)是C / C ++中用戶定義的數(shù)據(jù)類型。結(jié)構(gòu)創(chuàng)建一個(gè)數(shù)據(jù)類型,該數(shù)據(jù)類型可用于將可能不同類型的項(xiàng)目分組為單個(gè)類型。
如何建立結(jié)構(gòu)?
'struct'關(guān)鍵字用于創(chuàng)建結(jié)構(gòu)。以下是一個(gè)示例:

如何聲明結(jié)構(gòu)變量?
結(jié)構(gòu)變量既可以用結(jié)構(gòu)聲明來(lái)聲明,也可以像基本類型一樣聲明為單獨(dú)的聲明。

注意:在C ++中,在聲明變量之前,struct關(guān)鍵字是可選的。在C中,它是強(qiáng)制性的。
如何初始化結(jié)構(gòu)成員?
結(jié)構(gòu)成員不能使用聲明進(jìn)行初始化。例如,以下C程序編譯失敗。

發(fā)生上述錯(cuò)誤的原因很簡(jiǎn)單,當(dāng)聲明數(shù)據(jù)類型時(shí),不會(huì)為其分配任何內(nèi)存。僅在創(chuàng)建變量時(shí)分配內(nèi)存。
可以使用花括號(hào)“ {}”來(lái)初始化結(jié)構(gòu)成員。例如,以下是有效的初始化。

如何訪問(wèn)結(jié)構(gòu)元素?
使用Point()運(yùn)算符訪問(wèn)結(jié)構(gòu)成員。

輸出:x = 20,y = 1
什么是初始化?
指定初始化允許以任何順序初始化結(jié)構(gòu)成員。此功能已在C99標(biāo)準(zhǔn)中添加。

輸出:x = 2,y = 0,z = 1x = 20
此功能在C ++中不可用,僅在C中可用。
什么是結(jié)構(gòu)數(shù)組?
像其他原始數(shù)據(jù)類型一樣,我們可以創(chuàng)建結(jié)構(gòu)數(shù)組。

輸出:10 20
什么是結(jié)構(gòu)指針?
像原始類型一樣,我們可以擁有指向結(jié)構(gòu)的指針。如果有指向結(jié)構(gòu)的指針,則使用箭頭(->)運(yùn)算符訪問(wèn)成員。

輸出:1 2
C結(jié)構(gòu)的局限性
用C語(yǔ)言,結(jié)構(gòu)提供了一種將不同類型的數(shù)據(jù)打包在一起的方法。結(jié)構(gòu)是處理一組邏輯上相關(guān)的數(shù)據(jù)項(xiàng)的有用工具。但是,C結(jié)構(gòu)具有一些局限性。
(1)C結(jié)構(gòu)不允許將struct數(shù)據(jù)類型視為內(nèi)置數(shù)據(jù)類型:
(2)我們不能在Structure變量上使用+,-等運(yùn)算符。例如,考慮以下代碼:

無(wú)數(shù)據(jù)隱藏:?C結(jié)構(gòu)不允許數(shù)據(jù)隱藏。在結(jié)構(gòu)范圍內(nèi)的任何位置,都可以通過(guò)任何功能訪問(wèn)結(jié)構(gòu)成員。
結(jié)構(gòu)內(nèi)部的功能:?C結(jié)構(gòu)不允許結(jié)構(gòu)內(nèi)部的功能
靜態(tài)成員:?C結(jié)構(gòu)體內(nèi)不能有靜態(tài)成員
訪問(wèn)修飾符:?C編程語(yǔ)言不支持訪問(wèn)修飾符。因此它們不能在C結(jié)構(gòu)中使用。
在Structure中創(chuàng)建構(gòu)造:?C中的Structure不能在Structure內(nèi)部具有構(gòu)造函數(shù)。
今日分享就到這里咯!希望對(duì)大家有幫助哦~
另外如果你想更好的提升你的編程能力,學(xué)好C語(yǔ)言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書(shū)籍分享:

編程學(xué)習(xí)視頻分享:
