新聞中心
結(jié)構(gòu)體(struct)是由一系列具有相同類(lèi)型或不同類(lèi)型的數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合,也叫結(jié)構(gòu)。建議大家可以和這篇文章結(jié)合著來(lái)看,C++的中的結(jié)構(gòu)體和枚舉

創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、濟(jì)水街道網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、成都商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為濟(jì)水街道等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
什么是結(jié)構(gòu)體?
簡(jiǎn)單的來(lái)說(shuō),結(jié)構(gòu)體就是一個(gè)可以包含不同數(shù)據(jù)類(lèi)型的一個(gè)結(jié)構(gòu),它是一種可以自己定義的數(shù)據(jù)類(lèi)型,它的特點(diǎn)和數(shù)組主要有兩點(diǎn)不同,首先結(jié)構(gòu)體可以在一個(gè)結(jié)構(gòu)中聲明不同的數(shù)據(jù)類(lèi)型,第二相同結(jié)構(gòu)的結(jié)構(gòu)體變量是可以相互賦值的,而數(shù)組是做不到的,因?yàn)閿?shù)組是單一數(shù)據(jù)類(lèi)型的數(shù)據(jù)集合,它本身不是數(shù)據(jù)類(lèi)型(而結(jié)構(gòu)體是),數(shù)組名稱(chēng)是常量指針,所以不可以做為左值進(jìn)行運(yùn)算,所以數(shù)組之間就不能通過(guò)數(shù)組名稱(chēng)相互復(fù)制了,即使數(shù)據(jù)類(lèi)型和數(shù)組大小完全相同。
定義結(jié)構(gòu)體使用struct修飾符,例如:
C++ 代碼:
- struct test
- {
- float a;
- int b;
- };
上面的代碼就定義了一個(gè)名為test的結(jié)構(gòu)體,它的數(shù)據(jù)類(lèi)型就是test,它包含兩個(gè)成員a和b,成員a的數(shù)據(jù)類(lèi)型為浮點(diǎn)型,成員b的數(shù)據(jù)類(lèi)型為整型。
由于結(jié)構(gòu)體本身就是自定義的數(shù)據(jù)類(lèi)型,定義結(jié)構(gòu)體變量的方法和定義普通變量的方法一樣。
- test pn1;
這樣就定義了一test結(jié)構(gòu)體數(shù)據(jù)類(lèi)型的結(jié)構(gòu)體變量pn1,結(jié)構(gòu)體成員的訪(fǎng)問(wèn)通過(guò)點(diǎn)操作符進(jìn)行,pn1.a=10 就對(duì)結(jié)構(gòu)體變量pn1的成員a進(jìn)行了賦值操作,
注意:結(jié)構(gòu)體生命的時(shí)候本身不占用任何內(nèi)存空間,只有當(dāng)你用你定義的結(jié)構(gòu)體類(lèi)型定義結(jié)構(gòu)體變量的時(shí)候計(jì)算機(jī)才會(huì)分配內(nèi)存。
結(jié)構(gòu)體,同樣是可以定義指針的,那么結(jié)構(gòu)體指針就叫做結(jié)構(gòu)指針。
結(jié)構(gòu)指針通過(guò)->符號(hào)來(lái)訪(fǎng)問(wèn)成員,下面我們就以上所說(shuō)的看一個(gè)完整的例子:
C++ 代碼:
- //程序作者:管寧
- //所有稿件均有版權(quán),如要轉(zhuǎn)載,請(qǐng)務(wù)必注明出處和作者
- #include
- #include
- usingnamespacestd;
- structtest//定義一個(gè)名為test的結(jié)構(gòu)體
- {
- inta;//定義結(jié)構(gòu)體成員a
- intb;//定義結(jié)構(gòu)體成員b
- };
- voidmain()
- {
- testpn1;//定義結(jié)構(gòu)體變量pn1
- testpn2;//定義結(jié)構(gòu)體變量pn2
- pn2.a=10;//通過(guò)成員操作符.給結(jié)構(gòu)體變量pn2中的成員a賦值
- pn2.b=3;//通過(guò)成員操作符.給結(jié)構(gòu)體變量pn2中的成員b賦值
- pn1=pn2;//把pn2中所有的成員值復(fù)制給具有相同結(jié)構(gòu)的結(jié)構(gòu)體變量pn1
- cout<
- cout<
- test*point;//定義結(jié)構(gòu)指針
- point=&pn2;//指針指向結(jié)構(gòu)體變量pn2的內(nèi)存地址
- cout<
- point->a=99;//通過(guò)結(jié)構(gòu)指針修改結(jié)構(gòu)體變量pn2成員a的值
- cout<
- cout<
a<<"|"< b< - cin.get();
- }
總之,結(jié)構(gòu)體可以描述數(shù)組不能夠清晰描述的結(jié)構(gòu),它具有數(shù)組所不具備的一些功能特性。
分享題目:C++中結(jié)構(gòu)體的的慨念和使用方法
文章URL:http://www.dlmjj.cn/article/dhdjjsc.html


咨詢(xún)
建站咨詢(xún)
