青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

冰狼

在努力、磨練、打擊下不斷地向著理想的財(cái)務(wù)自由方向前進(jìn)

C語(yǔ)言中給出了另一種構(gòu)造數(shù)據(jù)類型——“結(jié)構(gòu)”。 它相當(dāng)于其它高級(jí)語(yǔ)言中的記錄。“結(jié)構(gòu)”是一種構(gòu)造類型,它是由若干“成員”組成的。 每一個(gè)成員可以是一個(gè)基本數(shù)據(jù)類型或者又是一個(gè)構(gòu)造類型。 結(jié)構(gòu)既是一種“構(gòu)造”而成的數(shù)據(jù)類型, 那么在說(shuō)明和使用之前必須先定義它,也就是構(gòu)造它。如同在說(shuō)明和調(diào)用函數(shù)之前要先定義函數(shù)一樣。

一、結(jié)構(gòu)的定義
定義一個(gè)結(jié)構(gòu)的一般形式為:
struct 結(jié)構(gòu)名
{
    成員表列
};
成員表由若干個(gè)成員組成, 每個(gè)成員都是該結(jié)構(gòu)的一個(gè)組成部分。對(duì)每個(gè)成員也必須作類型說(shuō)明,其形式為:
類型說(shuō)明符 成員名;
成員名的命名應(yīng)符合標(biāo)識(shí)符的書(shū)寫(xiě)規(guī)定。
說(shuō)明結(jié)構(gòu)變量有以下三種方法。以上面定義的stu為例來(lái)加以說(shuō)明。
1. 先定義結(jié)構(gòu),再說(shuō)明結(jié)構(gòu)變量。如:
struct stu
{
    int num;
    char name[20];
    char sex;
    float score;
};
struct stu boy1,boy2;
說(shuō)明了兩個(gè)變量boy1和boy2為stu結(jié)構(gòu)類型。也可以用宏定義使一個(gè)符號(hào)常量來(lái)表示一個(gè)結(jié)構(gòu)類型,例如:
#define STU struct stu
STU
{
    int num;
    char name[20];
    char sex;
    float score;
};
STU boy1,boy2;

2. 在定義結(jié)構(gòu)類型的同時(shí)說(shuō)明結(jié)構(gòu)變量。例如:
struct stu
{
    int num;
    char name[20];
    char sex;
    float score;
}boy1,boy2;

3. 直接說(shuō)明結(jié)構(gòu)變量。例如:
struct
{
    int num;
    char name[20];
    char sex;
    float score;
}boy1,boy2;
  第三種方法與第二種方法的區(qū)別在于第三種方法中省去了結(jié)構(gòu)名,而直接給出結(jié)構(gòu)變量。三種方法中說(shuō)明的boy1,boy2變量都具有圖7.1所示的結(jié)構(gòu)。說(shuō)明了boy1,boy2變量為stu類型后,即可向這兩個(gè)變量中的各個(gè)成員賦值。在上述stu結(jié)構(gòu)定義中,所有的成員都是基本數(shù)據(jù)類型或數(shù)組類型。成員也可以又是一個(gè)結(jié)構(gòu), 即構(gòu)成了嵌套的結(jié)構(gòu)。例如,圖7.2給出了另一個(gè)數(shù)據(jù)結(jié)構(gòu)。
在ANSI C中除了允許具有相同類型的結(jié)構(gòu)變量相互賦值以外, 一般對(duì)結(jié)構(gòu)變量的使用,包括賦值、輸入、輸出、 運(yùn)算等都是通過(guò)結(jié)構(gòu)變量的成員來(lái)實(shí)現(xiàn)的。
  表示結(jié)構(gòu)變量成員的一般形式是: 結(jié)構(gòu)變量名.成員名
如果結(jié)構(gòu)變量是全局變量或?yàn)殪o態(tài)變量, 則可對(duì)它作初始化賦值。對(duì)局部或自動(dòng)結(jié)構(gòu)變量不能作初始化賦值。
數(shù)組的元素也可以是結(jié)構(gòu)類型的。 因此可以構(gòu)成結(jié)構(gòu)型數(shù)組。結(jié)構(gòu)數(shù)組的每一個(gè)元素都是具有相同結(jié)構(gòu)類型的下標(biāo)結(jié)構(gòu)變量。

結(jié)構(gòu)指針變量的說(shuō)明和使用一個(gè)指針變量當(dāng)用來(lái)指向一個(gè)結(jié)構(gòu)變量時(shí), 稱之為結(jié)構(gòu)指針變量。
結(jié)構(gòu)指針變量中的值是所指向的結(jié)構(gòu)變量的首地址。 通過(guò)結(jié)構(gòu)指針即可訪問(wèn)該結(jié)構(gòu)變量, 這與數(shù)組指針和函數(shù)指針的情況是相同的。結(jié)構(gòu)指針變量說(shuō)明的一般形式為:
struct 結(jié)構(gòu)名*結(jié)構(gòu)指針變量名
struct stu *pstu;

當(dāng)然也可在定義stu結(jié)構(gòu)時(shí)同時(shí)說(shuō)明pstu。與前面討論的各類指針變量相同,結(jié)構(gòu)指針變量也必須要先賦值后才能使用。賦值是把結(jié)構(gòu)變量的首地址賦予該指針變量, 不能把結(jié)構(gòu)名賦予該指針變量。如果boy是被說(shuō)明為stu類型的結(jié)構(gòu)變量,則: pstu=&boy是正確的,而: pstu=&stu是錯(cuò)誤的。

  結(jié)構(gòu)名和結(jié)構(gòu)變量是兩個(gè)不同的概念,不能混淆。 結(jié)構(gòu)名只能表示一個(gè)結(jié)構(gòu)形式,編譯系統(tǒng)并不對(duì)它分配內(nèi)存空間。 只有當(dāng)某變量被說(shuō)明為這種類型的結(jié)構(gòu)時(shí),才對(duì)該變量分配存儲(chǔ)空間。 因此上面&stu這種寫(xiě)法是錯(cuò)誤的,不可能去取一個(gè)結(jié)構(gòu)名的首地址。 有了結(jié)構(gòu)指針變量,就能更方便地訪問(wèn)結(jié)構(gòu)變量的各個(gè)成員。

其訪問(wèn)的一般形式為: (*結(jié)構(gòu)指針變量).成員名 或?yàn)椋?br>結(jié)構(gòu)指針變量->成員名
例如: (*pstu).num或者: pstu->num
應(yīng)該注意(*pstu)兩側(cè)的括號(hào)不可少, 因?yàn)槌蓡T符“.”的優(yōu)先級(jí)高于“*”。如去掉括號(hào)寫(xiě)作*pstu.num則等效于*(pstu.num),這樣,意義就完全不對(duì)了。

結(jié)構(gòu)變量.成員名
(*結(jié)構(gòu)指針變量).成員名
結(jié)構(gòu)指針變量->成員名
  這三種用于表示結(jié)構(gòu)成員的形式是完全等效的。結(jié)構(gòu)數(shù)組指針變量結(jié)構(gòu)指針變量可以指向一個(gè)結(jié)構(gòu)數(shù)組, 這時(shí)結(jié)構(gòu)指針變量的值是整個(gè)結(jié)構(gòu)數(shù)組的首地址。 結(jié)構(gòu)指針變量也可指向結(jié)構(gòu)數(shù)組的一個(gè)元素,這時(shí)結(jié)構(gòu)指針變量的值是該結(jié)構(gòu)數(shù)組元素的首地址。設(shè)ps為指向結(jié)構(gòu)數(shù)組的指針變量,則ps也指向該結(jié)構(gòu)數(shù)組的0號(hào)元素,ps+1指向1號(hào)元素,ps+i則指向i號(hào)元素。 這與普通數(shù)組的情況是一致的。


C語(yǔ)言中不允許動(dòng)態(tài)數(shù)組類型。例如: int n;scanf("%d",&n);int a[n]; 用變量表示長(zhǎng)度,想對(duì)數(shù)組的大小作動(dòng)態(tài)說(shuō)明, 這是錯(cuò)誤的。但是在實(shí)際的編程中,往往會(huì)發(fā)生這種情況, 即所需的內(nèi)存空間取決于實(shí)際輸入的數(shù)據(jù),而無(wú)法預(yù)先確定。對(duì)于這種問(wèn)題, 用數(shù)組的辦法很難解決。為了解決上述問(wèn)題,C語(yǔ)言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要?jiǎng)討B(tài)地分配內(nèi)存空間, 也可把不再使用的空間回收待用,為有效地利用內(nèi)存資源提供了手段。 常用的內(nèi)存管理函數(shù)有以下三個(gè):
1.分配內(nèi)存空間函數(shù)malloc
調(diào)用形式: (類型說(shuō)明符*) malloc (size) 功能:在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一塊長(zhǎng)度為"size" 字節(jié)的連續(xù)區(qū)域。函數(shù)的返回值為該區(qū)域的首地址。 “類型說(shuō)明符”表示把該區(qū)域用于何種數(shù)據(jù)類型。(類型說(shuō)明符*)表示把返回值強(qiáng)制轉(zhuǎn)換為該類型指針。“size”是一個(gè)無(wú)符號(hào)數(shù)。例如: pc=(char *) malloc (100); 表示分配100個(gè)字節(jié)的內(nèi)存空間,并強(qiáng)制轉(zhuǎn)換為字符數(shù)組類型, 函數(shù)的返回值為指向該字符數(shù)組的指針, 把該指針賦予指針變量pc。
2.分配內(nèi)存空間函數(shù) calloc
calloc 也用于分配內(nèi)存空間。調(diào)用形式: (類型說(shuō)明符*)calloc(n,size) 功能:在內(nèi)存動(dòng)態(tài)存儲(chǔ)區(qū)中分配n塊長(zhǎng)度為“size”字節(jié)的連續(xù)區(qū)域。函數(shù)的返回值為該區(qū)域的首地址。(類型說(shuō)明符*)用于強(qiáng)制類型轉(zhuǎn)換。calloc函數(shù)與malloc 函數(shù)的區(qū)別僅在于一次可以分配n塊區(qū)域。例如: ps=(struet stu*) calloc(2,sizeof (struct stu)); 其中的sizeof(struct stu)是求stu的結(jié)構(gòu)長(zhǎng)度。因此該語(yǔ)句的意思是:按stu的長(zhǎng)度分配2塊連續(xù)區(qū)域,強(qiáng)制轉(zhuǎn)換為stu類型,并把其首地址賦予指針變量ps。
3.釋放內(nèi)存空間函數(shù)free
調(diào)用形式: free(void*ptr); 功能:釋放ptr所指向的一塊內(nèi)存空間,ptr 是一個(gè)任意類型的指針變量,它指向被釋放區(qū)域的首地址。被釋放區(qū)應(yīng)是由malloc或calloc函數(shù)所分配的區(qū)域。


“聯(lián)合”與“結(jié)構(gòu)”有一些相似之處。但兩者有本質(zhì)上的不同。在結(jié)構(gòu)中各成員有各自的內(nèi)存空間, 一個(gè)結(jié)構(gòu)變量的總長(zhǎng)度是各成員長(zhǎng)度之和。而在“聯(lián)合”中,各成員共享一段內(nèi)存空間, 一個(gè)聯(lián)合變量的長(zhǎng)度等于各成員中最長(zhǎng)的長(zhǎng)度。應(yīng)該說(shuō)明的是, 這里所謂的共享不是指把多個(gè)成員同時(shí)裝入一個(gè)聯(lián)合變量?jī)?nèi), 而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值, 賦入新值則沖去舊值。如前面介紹的“單位”變量, 如定義為一個(gè)可裝入“班級(jí)”或“教研室”的聯(lián)合后,就允許賦予整型值(班級(jí))或字符串(教研室)。要么賦予整型值,要么賦予字符串,不能把兩者同時(shí)賦予它。聯(lián)合類型的定義和聯(lián)合變量的說(shuō)明一個(gè)聯(lián)合類型必須經(jīng)過(guò)定義之后, 才能把變量說(shuō)明為該聯(lián)合類型。
一、聯(lián)合的定義
定義一個(gè)聯(lián)合類型的一般形式為:
union 聯(lián)合名
{
    成員表
};
成員表中含有若干成員,成員的一般形式為: 類型說(shuō)明符 成員名 成員名的命名應(yīng)符合標(biāo)識(shí)符的規(guī)定。

小結(jié)
1. 結(jié)構(gòu)和聯(lián)合是兩種構(gòu)造類型數(shù)據(jù),是用戶定義新數(shù)據(jù)類型的重要手段。結(jié)構(gòu)和聯(lián)合有很多的相似之處,它們都由成員組成。成員可以具有不同的數(shù)據(jù)類型。成員的表示方法相同。都可用三種方式作變量說(shuō)明。
2. 在結(jié)構(gòu)中,各成員都占有自己的內(nèi)存空間,它們是同時(shí)存在的。一個(gè)結(jié)構(gòu)變量的總長(zhǎng)度等于所有成員長(zhǎng)度之和。在聯(lián)合中,所有成員不能同時(shí)占用它的內(nèi)存空間,它們不能同時(shí)存在。聯(lián)合變量的長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。
3. “.”是成員運(yùn)算符,可用它表示成員項(xiàng),成員還可用“->”運(yùn)算符來(lái)表示。
4. 結(jié)構(gòu)變量可以作為函數(shù)參數(shù),函數(shù)也可返回指向結(jié)構(gòu)的指針變量。而聯(lián)合變量不能作為函數(shù)參數(shù),函數(shù)也不能返回指向聯(lián)合的指針變量。但可以使用指向聯(lián)合變量的指針,也可使用聯(lián)合數(shù)組。
5. 結(jié)構(gòu)定義允許嵌套,結(jié)構(gòu)中也可用聯(lián)合作為成員,形成結(jié)構(gòu)和聯(lián)合的嵌套。
6. 鏈表是一種重要的數(shù)據(jù)結(jié)構(gòu),它便于實(shí)現(xiàn)動(dòng)態(tài)的存儲(chǔ)分配。本章介紹是單向鏈表,還可組成雙向鏈表,循環(huán)鏈表等。
posted @ 2007-06-19 11:29 在法律保護(hù)下合法地?fù)屻y行 閱讀(912) | 評(píng)論 (0)編輯 收藏
僅列出標(biāo)題
共12頁(yè): 1 2 3 4 5 6 7 8 9 Last 

公告

轉(zhuǎn)載、引用、收藏,請(qǐng)標(biāo)明來(lái)自:

http://m.shnenglu.com/paladino

導(dǎo)航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計(jì)

留言簿(2)

隨筆分類(10)

文章分類(5)

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲毛片在线免费观看| 另类人畜视频在线| 午夜精品久久久久久| 艳妇臀荡乳欲伦亚洲一区| 欧美激情成人在线视频| 亚洲国产日韩欧美一区二区三区| 欧美激情1区| 女人色偷偷aa久久天堂| 亚洲欧洲视频在线| 欧美成人dvd在线视频| 欧美国产一区二区| 欧美激情中文字幕在线| 亚洲精品乱码久久久久久| 欧美电影资源| 亚洲免费av片| 久久精品女人天堂| 亚洲三级电影在线观看| 欧美日韩精品伦理作品在线免费观看| 久久久久国产精品午夜一区| 激情另类综合| 欧美日在线观看| 欧美一级播放| 亚洲精品之草原avav久久| 亚洲图片在区色| 一区二区三区无毛| 欧美激情精品久久久久久黑人| 亚洲激情不卡| 久久成人一区| 一本色道久久加勒比精品| 国产热re99久久6国产精品| 美女91精品| 亚洲自拍都市欧美小说| 亚洲国产成人久久| 久久精品国产一区二区三区| aa级大片欧美三级| 娇妻被交换粗又大又硬视频欧美| 欧美sm视频| 久久福利资源站| 一区二区欧美视频| 亚洲电影av在线| 久久久久综合网| 亚洲欧美日韩爽爽影院| 亚洲精美视频| 在线电影院国产精品| 国产精品成人在线| 欧美国产在线观看| 久久夜色精品国产| 欧美中文字幕在线| 亚洲一区二区三区精品视频| 亚洲精品在线三区| 亚洲精品日本| 亚洲国产精品成人久久综合一区| 久久国产加勒比精品无码| 亚洲午夜未删减在线观看| 日韩视频久久| 日韩视频二区| 一区二区三区偷拍| 99精品国产高清一区二区 | 久久深夜福利| 欧美亚洲在线观看| 亚洲一区视频在线| 亚洲影院污污.| 亚洲欧美激情诱惑| 亚洲伊人久久综合| 亚洲尤物在线视频观看| 亚洲四色影视在线观看| 亚洲欧美日本另类| 久久精品国产综合精品| 久久亚洲私人国产精品va媚药| 久久国产日韩| 欧美激情一区二区三区在线视频 | 亚洲一区在线免费| 亚洲欧美精品在线观看| 亚洲综合不卡| 久久精品72免费观看| 久久视频这里只有精品| 欧美成人免费小视频| 91久久精品一区| 在线视频你懂得一区二区三区| 日韩午夜视频在线观看| 性色一区二区| 欧美jizzhd精品欧美喷水| 国产精品劲爆视频| 韩日欧美一区二区三区| 亚洲人成人一区二区三区| 亚洲自拍都市欧美小说| 久久综合五月| 亚洲美女区一区| 久久成人免费网| 欧美精品一二三| 国产三级欧美三级日产三级99| 国产精品电影网站| 激情久久久久久久| 9色精品在线| 好吊成人免视频| 亚洲国产一区在线观看| 99精品99| 久久久999精品免费| 欧美黄色影院| 一区二区三区色| 欧美一进一出视频| 蜜臀久久99精品久久久久久9| 欧美国产精品一区| 欧美日韩亚洲综合| 国内精品免费午夜毛片| 亚洲国产日韩欧美一区二区三区| 尤物九九久久国产精品的特点| 亚洲国产高清在线| 亚洲欧美成人一区二区三区| 一本色道久久综合狠狠躁篇的优点| 国产精品外国| 一区二区三区色| 久久国产一区二区| 欧美电影打屁股sp| 久久综合久久综合久久综合| 你懂的网址国产 欧美| 欧美精品久久99久久在免费线| 久久本道综合色狠狠五月| 欧美国产视频日韩| 欧美劲爆第一页| 国产欧美一区二区视频| 亚洲国产合集| 欧美专区在线| 亚洲精品一区二区三区99| 午夜精品久久久久久久久久久久| 欧美一区二区高清| 欧美日韩视频第一区| 精品999网站| 亚洲一区二区精品视频| 欧美不卡高清| 午夜视频在线观看一区| 欧美成人精品h版在线观看| 国产精品欧美日韩一区| 亚洲精品黄色| 久久婷婷丁香| 亚洲小说欧美另类社区| 欧美高清你懂得| 一区在线电影| 久久国产精品亚洲va麻豆| 在线亚洲激情| 欧美日韩高清免费| 亚洲精品中文字幕女同| 免费日韩视频| 久久精品国产99精品国产亚洲性色| 欧美日韩精品免费看| 亚洲精品一区在线| 欧美r片在线| 久久伊人精品天天| 国产亚洲一区在线| 久久丁香综合五月国产三级网站| 欧美一区视频| 亚洲国产成人精品视频| 久久国产免费看| 欧美精品一区二区三区四区| 国产美女高潮久久白浆| 夜夜爽夜夜爽精品视频| 免费久久99精品国产| 亚洲一区精彩视频| 香蕉亚洲视频| 黄色影院成人| 欧美成人视屏| 久久这里有精品视频| 91久久久久久久久| 最新国产成人在线观看| 欧美日韩中文精品| 亚洲欧美另类在线观看| 亚洲免费影视| 一区二区三区亚洲| 亚洲日韩中文字幕在线播放| 欧美一区二区大片| 欧美伊人久久| 午夜精品一区二区三区在线视| 欧美日韩一区二区在线视频| 在线视频欧美一区| 亚洲尤物视频网| 欧美电影在线播放| 亚洲狼人精品一区二区三区| 亚洲精品免费网站| 欧美视频在线一区| 久久精品综合网| 久久综合九九| 中国女人久久久| 西西裸体人体做爰大胆久久久| 欧美体内she精视频在线观看| 亚洲一区在线免费观看| 久久久亚洲午夜电影| 一本色道**综合亚洲精品蜜桃冫| 99在线精品观看| 一色屋精品视频在线看| 最近中文字幕mv在线一区二区三区四区 | 国产精品99久久久久久久女警| 欧美激情亚洲精品| 亚洲在线观看免费| 久久精品日韩| 亚洲视频视频在线| 久久午夜电影网| 亚洲一级黄色| 久久综合国产精品| 久久激情视频| 欧美午夜激情在线|