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

C語言初學(xué)者入門知識之指針的慨念02

  數(shù)組指針變量的說明和使用

  指向數(shù)組的指針變量稱為數(shù)組指針變量。 在討論數(shù)組指針變量的說明和使用之前,我們先明確幾個關(guān)系。

  一個數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的。 數(shù)組名就是這塊連續(xù)內(nèi)存單元的首地址。一個數(shù)組也是由各個數(shù)組元素(下標(biāo)變量) 組成的。每個數(shù)組元素按其類型不同占有幾個連續(xù)的內(nèi)存單元。 一個數(shù)組元素的首地址也是指它所占有的幾個內(nèi)存單元的首地址。 一個指針變量既可以指向一個數(shù)組,也可以指向一個數(shù)組元素, 可把數(shù)組名或第一個元素的地址賦予它。如要使指針變量指向第i號元素可以把i元素的首地址賦予它或把數(shù)組名加i賦予它。

  設(shè)有實數(shù)組a,指向a的指針變量為pa,從圖6.3中我們可以看出有以下關(guān)系:

  pa,a,&a[0]均指向同一單元,它們是數(shù)組a的首地址,也是0 號元素a[0]的首地址。pa+1,a+1,&a[1]均指向1號元素a[1].類推可知a+i,a+i,&a[i]

  指向i號元素a[i].應(yīng)該說明的是pa是變量,而a,&a[i]都是常量。在編程時應(yīng)予以注意。

  main(){

  int a[5],i;

  for(i=0;i<5;i++){

  a[i]=i;

  printf("a[%d]=%d\n",i,a[i]);

  }

  printf("\n");

  }

  主函數(shù)

  定義一個整型數(shù)組和一個整型變量

  循環(huán)語句

  給數(shù)組賦值

  打印每一個數(shù)組的值

  ……

  輸出換行

  ……

  數(shù)組指針變量說明的一般形式為:

  類型說明符 * 指針變量名

  其中類型說明符表示所指數(shù)組的類型。 從一般形式可以看出指向數(shù)組的指針變量和指向普通變量的指針變量的說明是相同的。

  引入指針變量后,就可以用兩種方法來訪問數(shù)組元素了。

  第一種方法為下標(biāo)法,即用a[i]形式訪問數(shù)組元素。 在第四章中介紹數(shù)組時都是采用這種方法。

  第二種方法為指針法,即采用*(pa+i)形式,用間接訪問的方法來訪問數(shù)組元素。

  main(){

  int a[5],i,*pa;

  pa=a;

  for(i=0;i<5;i++){

  *pa=i;

  pa++;

  }

  pa=a;

  for(i=0;i<5;i++){

  printf("a[%d]=%d\n",i,*pa);

  pa++;

  }

  }

  主函數(shù)

  定義整型數(shù)組和指針

  將指針pa指向數(shù)組a

  循環(huán)

  將變量i的值賦給由指針pa指向的a[]的數(shù)組單元

  將指針pa指向a[]的下一個單元

  ……

  指針pa重新取得數(shù)組a的首地址

  循環(huán)

  用數(shù)組方式輸出數(shù)組a中的所有元素

  將指針pa指向a[]的下一個單元

  ……

  ……

  下面,另舉一例,該例與上例本意相同,但是實現(xiàn)方式不同。

  main(){

  int a[5],i,*pa=a;

  for(i=0;i<5;){

  *pa=i;

  printf("a[%d]=%d\n",i++,*pa++);

  }

  }

  主函數(shù)

  定義整型數(shù)組和指針,并使指針指向數(shù)組a

  循環(huán)

  將變量i的值賦給由指針pa指向的a[]的數(shù)組單元

  用指針輸出數(shù)組a中的所有元素,同時指針pa指向a[]的下一個單元

  ……

  ……

  數(shù)組名和數(shù)組指針變量作函數(shù)參數(shù)

  在第五章中曾經(jīng)介紹過用數(shù)組名作函數(shù)的實參和形參的問題。在學(xué)習(xí)指針變量之后就更容易理解這個問題了。 數(shù)組名就是數(shù)組的首地址,實參向形參傳送數(shù)組名實際上就是傳送數(shù)組的地址, 形參得到該地址后也指向同一數(shù)組。 這就好象同一件物品有兩個彼此不同的名稱一樣。同樣,指針變量的值也是地址, 數(shù)組指針變量的值即為數(shù)組的首地址,當(dāng)然也可作為函數(shù)的參數(shù)使用。

  float aver(float *pa);

  main(){

  float sco[5],av,*sp;

  int i;

  sp=sco;

  printf("\ninput 5 scores:\n");

  for(i=0;i<5;i++) scanf("%f",&sco[i]);

  av=aver(sp);

  printf("average score is %5.2f",av);

  }

  float aver(float *pa)

  {

  int i;

  float av,s=0;

  for(i=0;i<5;i++) s=s+*pa++;

  av=s/5;

  return av;

  }

  相關(guān)推薦:

  2012年軟考系統(tǒng)分析師考試60天完美復(fù)習(xí)計劃

  2012年軟件水平考試網(wǎng)絡(luò)工程師章節(jié)筆記講義匯總

  2012年上半年軟件水平考試成績查詢匯總

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