九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

C語言程序設(shè)計教程(修訂本)第7章指針.ppt

  • 資源ID:11495421       資源大?。?span id="24d9guoke414" class="font-tahoma">262KB        全文頁數(shù):46頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

C語言程序設(shè)計教程(修訂本)第7章指針.ppt

第7章指針,7.1指針的基本概念7.2指針變量7.3數(shù)組與指針7.4字符串與指針7.5指針數(shù)組與指向指針的指針7.6函數(shù)與指針7.7程序舉例,7.1指針的基本概念(1)直接存取所謂直接存取,是指在程序執(zhí)行過程中需要存取變量值時,直接存取變量所占內(nèi)存單元中的內(nèi)容。(2)間接存取所謂間接存取,是指為了要存取一個變量值,首先從存放變量地址的指針變量中取得該變量的存儲地址,然后再從該地址中存取該變量值。,返回目錄,在C語言中,用符號“*”表示“指向”,反映指針變量與它所指的變量之間的聯(lián)系:(1)在變量類型說明中,變量前加“*”用于區(qū)別于普通變量。(2)在表達(dá)式中,變量前加“*”表示間接訪問。,7.2指針變量7.2.1指針變量的定義與引用變量的指針就是變量的地址,即指針變量用于存放變量的地址(即指向變量)。定義指針變量的一般形式為類型標(biāo)識符*指針變量名;,返回目錄,下面對指針變量作幾點說明:(1)指針變量名前的“*”表示該變量為指針變量,而指針變量名不包含該“*”。(2)一個指針變量只能指向同一類型的變量。(3)指針變量中只能存放地址,而不能將數(shù)值型數(shù)據(jù)賦給指針變量。(4)只有當(dāng)指針變量中具有確定地址后才能被引用。(5)與一般的變量一樣,也可以對指針變量進(jìn)行初始化。,7.2.2指針變量作為函數(shù)參數(shù)與普通變量一樣,指針變量也可以作為函數(shù)參數(shù)。利用指針變量作為函數(shù)的形參,可以使函數(shù)通過指針變量返回指針變量所指向的變量值,從而實現(xiàn)函數(shù)調(diào)用函數(shù)與被調(diào)用函數(shù)之間數(shù)據(jù)的雙向傳遞。在用指針變量作為函數(shù)形參時,其實參也應(yīng)為指針變量。,例7.2利用指針變量實現(xiàn)兩個變量值的互換。其C程序如下:#include"stdio.h"swap(p1,p2)int*p1,*p2;intt;t*p1;*p1*p2;*p2t;return;main()inta,b;scanf("%d,%d",&a,&b);printf("a%d,b%dn",a,b);swap(&a,&b);printf("a%d,b%dn",a,b);,7.3數(shù)組與指針7.3.1數(shù)組的指針與數(shù)組元素的指針?biāo)^數(shù)組的指針是指數(shù)組的首地址。數(shù)組元素的指針是指數(shù)組元素的地址。因此,同樣可以用指針變量來指向數(shù)組或數(shù)組元素。,返回目錄,例7.3下列C程序是從鍵盤為數(shù)組元素輸入數(shù)據(jù):#include"stdio.h"main()inta10,i;for(i0;i10;ii1)scanf("%d",&ai);printf("n");for(i0;i10;ii1)printf("%5dn",ai);,也可以直接使用數(shù)組名,將上述程序改為#include"stdio.h"main()inta10,i;for(i0;i10;ii1)scanf("%d",ai);printf("n");for(i0;i10;ii1)printf("%5dn",*(ai);,還可以使用指針變量,將上述程序改為#include"stdio.h"main()inta10,*pa,i;for(i0;i10;ii1)scanf("%d",pi);printf("n");for(i0;i10;ii1)printf("%5dn",*(pi);,使用指針變量后,指針變量所指向的數(shù)組元素也可以用下標(biāo)的形式,又可以將上述程序改為#include"stdio.h"main()inta10,*pa,i;for(i0;i10;ii1)scanf("%d",pi);printf("n");for(i0;i10;ii1)printf("%5dn",pi);以上四個程序是等價的。,下面對數(shù)組與指針作幾點說明:(1)指針變量可以指向數(shù)組中的任何一個元素。(2)用于指向數(shù)組或數(shù)組元素的指針變量類型必須與數(shù)組類型相同。(3)C語言規(guī)定,當(dāng)指針變量p指向數(shù)組的某一元素時,p1將指向下一個元素。(4)C語言規(guī)定,數(shù)組名代表數(shù)組的首地址,但它是固定不變的,即不能對數(shù)組名進(jìn)行賦值(即賦以新的地址值)。,7.3.2數(shù)組指針作為函數(shù)參數(shù)一般來說,在數(shù)組指針作函數(shù)參數(shù)時,有以下四種情況:(1)實參與形參都用數(shù)組名。例如,main()f(x,n)inta10;intx,n;f(a,10);,(2)實參用數(shù)組名,形參用指針變量。例如,main()f(x,n)inta10;int*x,n;f(a,10);,(3)實參與形參都用指針變量。例如,main()f(x,n)inta10,*pa;int*x,n;f(p,10);,(4)實參用指針變量,形參用數(shù)組名。例如,main()f(x,n)inta10,*pa;intx,n;f(p,10);,7.3.3多維數(shù)組與指針1對多維數(shù)組的理解2多維數(shù)組的指針多維數(shù)組的指針有以下兩種。(1)指向數(shù)組元素的指針變量,例7.5下列C程序是將一個二維數(shù)組中的元素按矩陣方式輸出。#include"stdioh"main()staticinta341,2,3,4,5,6,7,8,9,10,11,12;int*p;for(pa0;pa012;pp1)if(pa0)%40)printf("n");printf("%5d",*p);printf("n");,(2)指向數(shù)組行的指針變量所謂指向數(shù)組行的指針變量p,是指當(dāng)p指向數(shù)組的某一行時,p1將指向數(shù)組的下一行。即:如果p&ai時,則p1&ai1。定義指向數(shù)組行的指針變量的一般形式如下:類型標(biāo)識符(*指針變量名)數(shù)組行元素個數(shù);,7.4字符串與指針7.4.1字符串指針在C語言中,表示一個字符串有以下兩種形式:(1)用字符數(shù)組存放一個字符串。(2)用字符指針指向一個字符串。,返回目錄,字符數(shù)組和字符指針變量都能實現(xiàn)字符串的存儲與運(yùn)算。兩者既有聯(lián)系又有區(qū)別,主要體現(xiàn)在以下幾個方面:(1)字符數(shù)組由元素組成,每個元素中存放一個字符;而字符指針變量中存放的是地址,也能作為函數(shù)參數(shù)。(2)對數(shù)組賦初值要用static存儲類別。(3)只能對字符數(shù)組中的各個元素賦值,而不能用賦值語句對整個字符數(shù)組賦值。(4)字符數(shù)組名雖然代表地址,但數(shù)組名的值不能改變。,(5)可以用下標(biāo)形式引用指針變量所指向的字符串中的字符。(6)可以通過輸入字符串的方式為字符數(shù)組輸入字符元素;但不能通過輸入函數(shù)讓字符指針變量指向一個字符串,因為由鍵盤輸入的字符串,系統(tǒng)是不分配存儲空間的。(7)可以用指針變量指向的字符串來表示程序中的任何字符串,如printf函數(shù)中的格式字符串。,7.4.2字符串指針作為函數(shù)參數(shù)一般來說,當(dāng)需要在兩個函數(shù)之間傳遞字符串時,可以采用以下四種形式:(1)實參與形參都用字符數(shù)組名。(2)實參用字符數(shù)組名,形參用字符指針變量。(3)實參與形參都用字符指針變量。(4)實參用字符指針變量,形參用字符數(shù)組名。,例7.6編寫一個能實現(xiàn)字符串復(fù)制以及計算字符串長度功能的函數(shù)。C程序如下(包括主函數(shù)):intstr_copy(str1,str2)char*str1,*str2;intk;k0;while(str1k!0)str2kstr1k;kk1;str2k0;return(k1);,#include"stdioh"main()charstr120,str220;intk;printf("inputstr1:");scanf("%s",str1);printf("str1%sn",str1);kstr_copy(str1,str2);printf("str2%sn",str2);printf("k%dn",k);,7.5指針數(shù)組與指向指針的指針7.5.1指針數(shù)組的概念元素值均為指針類型數(shù)據(jù)的數(shù)組稱為指針數(shù)組。指針數(shù)組的定義形式如下:類型標(biāo)識*數(shù)組名數(shù)組長度說明;,返回目錄,圖7.2數(shù)組的初始化,如圖7.2所示的指針數(shù)組:,例7.7指針數(shù)組作為矩陣運(yùn)算函數(shù)的參數(shù)。在下面的C程序中,主函數(shù)中定義了一個54的矩陣,然后調(diào)用函數(shù)asd()對該矩陣賦值,最后在主函數(shù)中按矩陣形式輸出。在第6章中曾經(jīng)提到,在用二維數(shù)組作為實參時,在被調(diào)用函數(shù)中均定義為一維的形參數(shù)組,根據(jù)二維數(shù)組中的元素以行為主存儲的原則,將二維數(shù)組元素中的兩個下標(biāo)(行標(biāo)與列標(biāo))轉(zhuǎn)換成一維數(shù)組元素的下標(biāo),從而實現(xiàn)一維數(shù)組元素與二維數(shù)組元素的對應(yīng)。因此,在本例的函數(shù)asd()中,也用一維形參數(shù)組b與主函數(shù)中的二維數(shù)組a對應(yīng)。,#include"stdioh"main()inti,j,a54;asd(a,5,4);for(i0;i5;ii1)for(j0;j4;jj1)printf("5d",aij);printf("n");asd(b,m,n)intm,n,b(或*b);intk1,i,j;for(i0;i5;ii1)for(j0;j4;jj1)bi*njk;kk1;return;,現(xiàn)在利用指針數(shù)組來實現(xiàn)二維數(shù)組的傳遞。在主函數(shù)中除了定義一個二維數(shù)組a(表示矩陣)以外,再定義一個一維指針數(shù)組b,并且在該指針數(shù)組的每一個元素中對應(yīng)存放二維數(shù)組a中每一行的首地址,即讓指針數(shù)組b中的每個元素指向二維數(shù)組a的對應(yīng)行。在調(diào)用函數(shù)asd()時,實參使用一維指針數(shù)組b,即將二維數(shù)組a中各行的首地址傳遞給函數(shù)asd()。在這種情況下,函數(shù)asd()中的形參也是一維指針數(shù)組,其中bij表示bi所指向的數(shù)組行中第j個元素,實際上就是主函數(shù)中的元素aij。其C程序如下:,#include"stdioh"main()inti,j,a54,*b5;for(i0;i5;ii1)bi&ai0;asd(b,5,4);for(i0;i5;ii1)for(j0;j4;jj1)printf("5d",aij);printf("n");asd(b,m,n)intm,n,*b;intk1,i,j;for(i0;i5;ii1)for(j0;j4;jj1)bijk;kk1;return;,利用指針數(shù)組來實現(xiàn)二維數(shù)組的傳遞還可以這樣來實現(xiàn):在主函數(shù)中只定義一個一維指針數(shù)組,然后利用malloc()函數(shù)為該指針數(shù)組中的每一個元素指向一個能存放4個整型元素的存儲空間,每一個存儲空間正好可以存放整型二維數(shù)組中一行的4個元素。這樣,一維指針數(shù)組b中所有元素所指向的存儲空間就可以作為二維數(shù)組的存儲空間。其C程序如下:,#include"stdioh"#include"stdlibh"main()inti,j,*b5;for(i0;i5;ii1)bimalloc(4*sizeof(int);asd(b,5,4);for(i0;i5;ii1)for(j0;j4;jj1)printf("5d",bij);printf("n");asd(b,m,n)intm,n,*b;intk1,i,j;for(i0;i5;ii1)for(j0;j4;jj1)bijk;kk1;return;,7.5.2指向指針的指針指向指針的指針就是指向指針型數(shù)據(jù)的指針。如char*p;其中*p等價于*(*p)。,例7.8下列C程序是利用指針的指針來指向數(shù)組中的各元素并輸出。#include"stdioh"main()staticinta51,2,3,4,5;staticint*num5&a0,&a1,&a2,&a3,&a4;int*p,k;pnum;for(k0;k5;kk1)printf("%5d",*p);pp1;printf("n");,7.5.3main函數(shù)的形參C語言中的主函數(shù)是可以有參數(shù)的。帶參數(shù)main函數(shù)的一般形式如下:main(argc,argv)intargc;char*argv;其中argv是一個字符型的指針數(shù)組,每個元素可以指向一個字符串。需要說明的是,帶參數(shù)main函數(shù)中的兩個參數(shù)名不一定非要是argc與argv,也可以是別的名字。,例7.9編寫一個命令程序,其命令符為file,用以輸出命令行中除命令符外以空格分隔的所有字符串(一行輸出一個字符串)。其C程序如下:/*filec*/#include"stdioh"main(intargc,char*argv)intk;for(k1;k<argc1;k)printf("%sn",argvk);,將上述程序以文件名file.c存放,然后在TurboC系統(tǒng)中進(jìn)行編譯連接:tccfile生成可執(zhí)行程序文件fileexe。運(yùn)行結(jié)果為filenewgoodChinaasdfg(此為命令行,以下四行為程序輸出結(jié)果)newgoodChinaasdfg,7.6函數(shù)與指針7.6.1用函數(shù)指針變量調(diào)用函數(shù)在C語言中,指針不僅可以指向整型、字符型、實型等變量,還可以指向函數(shù)。一般來說,程序中的每一個函數(shù)經(jīng)編譯連接后,其目標(biāo)代碼在計算機(jī)內(nèi)存中是連續(xù)存放的,該代碼的首地址就是函數(shù)執(zhí)行時的入口地址。在C語言中,函數(shù)名本身就代表該函數(shù)的入口地址。所謂指向函數(shù)的指針,就是指向函數(shù)的入口地址。指向函數(shù)的指針變量定義形式如下:數(shù)據(jù)類型標(biāo)識符(*指針變量名)();其中()不能省略。定義了函數(shù)指針變量后,就可以通過它間接調(diào)用它所指向的函數(shù)。,返回目錄,下面對指向函數(shù)的指針作幾點說明:(1)可以通過指向函數(shù)的指針變量來調(diào)用函數(shù)。(2)在給函數(shù)指針變量賦值時,只需給出函數(shù)名,不必給出參數(shù)。如上例中的pft;(3)對函數(shù)指針變量運(yùn)算是沒有意義的。若p為函數(shù)指針變量,則pp1是沒有意義的。,7.6.2函數(shù)指針變量作為函數(shù)參數(shù)當(dāng)函數(shù)指針作為某函數(shù)的參數(shù)時,可以實現(xiàn)將函數(shù)指針?biāo)赶虻暮瘮?shù)入口地址傳遞給該函數(shù)。,7.7程序舉例例7.11編寫一個函數(shù),計算直到最后一項的絕對值x2n10.0001為止,并返回此時的n值。其中x在主函數(shù)中從鍵盤輸入。,返回目錄,其C程序如下:#include"mathh"#include"stdioh"doublearctan(doublex,int*n)intk,m0;doublef,d,s;fx;sx;domm1;ff*x*x;df/(2*m1);ssd;,while(fabs(d)00001);*nm;return(s);main()intn;doublex,s;printf("inputx:");scanf("%lf",&x);sarctan(x,&n);printf("n%dns%fn",n,s);,

注意事項

本文(C語言程序設(shè)計教程(修訂本)第7章指針.ppt)為本站會員(tia****nde)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!