首頁考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托福考試
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級
零起點(diǎn)德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會計(jì)職稱
法律顧問
ACCA考試
注冊會計(jì)師
資產(chǎn)評估師
審計(jì)師考試
高級會計(jì)師
注冊稅務(wù)師
國際內(nèi)審師
理財(cái)規(guī)劃師
美國注冊會計(jì)師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
造價(jià)員考試
注冊計(jì)量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評價(jià)師
土地登記代理人
繽紛校園 實(shí)用文檔 英語學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項(xiàng)輔導(dǎo)
軟件水平考試交流互動
軟件水平考試交流互動
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 復(fù)習(xí)資料 > 程序員資料 > 正文

C語言初學(xué)者入門知識之結(jié)構(gòu)體2

  [例6]

  struct stu

  {

  int num;

  char *name;

  char sex;

  float score;

  } boy1={102,"Zhang ping",'M',78.5},*pstu;

  main()

  {

  pstu=&boy1;

  printf("Number=%d\nName=%s\n",boy1.num,boy1.name);

  printf("Sex=%c\nScore=%f\n\n",boy1.sex,boy1.score);

  printf("Number=%d\nName=%s\n",(*pstu)。num,(*pstu)。name);

  printf("Sex=%c\nScore=%f\n\n",(*pstu)。sex,(*pstu)。score);

  printf("Number=%d\nName=%s\n",pstu->num,pstu->name);

  printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score);

  }

  本例程序定義了一個(gè)結(jié)構(gòu)stu,定義了stu類型結(jié)構(gòu)變量boy1并作了初始化賦值,還定義了一個(gè)指向stu類型結(jié)構(gòu)的指針變量pstu。在main函數(shù)中,pstu被賦予boy1的地址,因此pstu指向boy1 。然后在printf語句內(nèi)用三種形式輸出boy1的各個(gè)成員值。 從運(yùn)行結(jié)果可以看出:

  結(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號元素,ps+1指向1號元素,ps+i則指向i號元素。 這與普通數(shù)組的情況是一致的。

  [例7.7]用指針變量輸出結(jié)構(gòu)數(shù)組。

  struct stu

  {

  int num;

  char *name;

  char sex;

  float score;

  }boy[5]={

  {101,"Zhou ping",'M',45},

  {102,"Zhang ping",'M',62.5},

  {103,"Liou fang",'F',92.5},

  {104,"Cheng ling",'F',87},

  {105,"Wang ming",'M',58},

  };

  main()

  {

  struct stu *ps;

  printf("No\tName\t\t\tSex\tScore\t\n");

  for(ps=boy;ps

  printf("%d\t%s\t\t%c\t%f\t\n",ps->num,ps->name,ps->sex,ps->score);

  }

  在程序中,定義了stu結(jié)構(gòu)類型的外部數(shù)組boy 并作了初始化賦值。在main函數(shù)內(nèi)定義ps為指向stu類型的指針。在循環(huán)語句for的表達(dá)式1中,ps被賦予boy的首地址,然后循環(huán)5次,輸出boy數(shù)組中各成員值。 應(yīng)該注意的是,一個(gè)結(jié)構(gòu)指針變量雖然可以用來訪問結(jié)構(gòu)變量或結(jié)構(gòu)數(shù)組元素的成員,但是,不能使它指向一個(gè)成員。也就是說不允許取一個(gè)成員的地址來賦予它。因此下面的賦值是錯(cuò)誤的。

  ps=&boy[1].sex;而只能是:ps=boy;(賦予數(shù)組首地址)

  或者是:

  ps=&boy[0];(賦予0號元素首地址)

上一頁  1 2 3 4  下一頁

  相關(guān)推薦:

  2012年計(jì)算機(jī)等考四級數(shù)據(jù)庫工程師備考筆記匯總

  2012年計(jì)算機(jī)等級考試二級VB重點(diǎn)知識匯總

  2012年下半年計(jì)算機(jī)等級考試報(bào)名時(shí)間及入口匯總

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。