




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、為了說(shuō)清楚什么是指針,必須弄清楚數(shù)據(jù)在內(nèi)存中為了說(shuō)清楚什么是指針,必須弄清楚數(shù)據(jù)在內(nèi)存中是如何存儲(chǔ)的,又是如何讀取的。是如何存儲(chǔ)的,又是如何讀取的。 計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器的內(nèi)存計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器的內(nèi)存單元中的。一般把存儲(chǔ)器中一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元中的。一般把存儲(chǔ)器中一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元,不同數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不等,如單元,不同數(shù)據(jù)類型所占用的內(nèi)存單元數(shù)不等,如整型變量占整型變量占2個(gè)字節(jié),字符變量占個(gè)字節(jié),字符變量占1個(gè)字節(jié)等。個(gè)字節(jié)等。 為了正確地訪問(wèn)這些內(nèi)存單元,必須為每個(gè)內(nèi)存為了正確地訪問(wèn)這些內(nèi)存單元,必須為每個(gè)內(nèi)存單元編上號(hào),根據(jù)一個(gè)內(nèi)存
2、單元的編號(hào)即可準(zhǔn)確地單元編上號(hào),根據(jù)一個(gè)內(nèi)存單元的編號(hào)即可準(zhǔn)確地找到該內(nèi)存單元。找到該內(nèi)存單元。內(nèi)存單元的編號(hào),稱為內(nèi)存單元的編號(hào),稱為“地址地址” 。內(nèi)存單元的內(nèi)存單元的地址地址和內(nèi)存單元的和內(nèi)存單元的內(nèi)容內(nèi)容是兩個(gè)不同的概念:是兩個(gè)不同的概念:假設(shè)程序中定義了整型變量假設(shè)程序中定義了整型變量i,并賦值為,并賦值為3。編譯時(shí)系統(tǒng)。編譯時(shí)系統(tǒng)分配分配2000和和2001兩個(gè)字節(jié)給變量?jī)蓚€(gè)字節(jié)給變量i,此時(shí)兩個(gè)內(nèi)存單元,此時(shí)兩個(gè)內(nèi)存單元的編號(hào)為單元的地址,其中存放的數(shù)據(jù)即是該單元的內(nèi)的編號(hào)為單元的地址,其中存放的數(shù)據(jù)即是該單元的內(nèi)容。容。兩種訪問(wèn)方式:兩種訪問(wèn)方式:直接訪問(wèn)方式:直接訪問(wèn)方式:在
3、程序中一般是通過(guò)變量名來(lái)對(duì)內(nèi)存單元進(jìn)行存取操作在程序中一般是通過(guò)變量名來(lái)對(duì)內(nèi)存單元進(jìn)行存取操作的,其實(shí)程序在編譯后,已經(jīng)將變量名轉(zhuǎn)換成變量的地的,其實(shí)程序在編譯后,已經(jīng)將變量名轉(zhuǎn)換成變量的地址,對(duì)變量值的存取都是通過(guò)地址進(jìn)行的。址,對(duì)變量值的存取都是通過(guò)地址進(jìn)行的。間接訪問(wèn)方式:間接訪問(wèn)方式: 將變量將變量i的地址存放在另一個(gè)變量中,的地址存放在另一個(gè)變量中,C語(yǔ)言規(guī)定,可語(yǔ)言規(guī)定,可以在程序中定義一種特殊的變量,用來(lái)存放地址。以在程序中定義一種特殊的變量,用來(lái)存放地址。假設(shè)定義一個(gè)變量假設(shè)定義一個(gè)變量p,用來(lái)存放整型變量的地址,它被,用來(lái)存放整型變量的地址,它被分配為分配為3010、3011
4、兩個(gè)字節(jié)。兩個(gè)字節(jié)。可以通過(guò)下面語(yǔ)句將可以通過(guò)下面語(yǔ)句將i的地址的地址(2000)存放到存放到p:p=&i; 對(duì)變量對(duì)變量i是訪問(wèn),可直接訪問(wèn),已知變量是訪問(wèn),可直接訪問(wèn),已知變量i的地址,根的地址,根據(jù)此地址直接對(duì)變量據(jù)此地址直接對(duì)變量i的存儲(chǔ)單元進(jìn)行存取訪問(wèn);的存儲(chǔ)單元進(jìn)行存取訪問(wèn); 也可間接訪問(wèn),先找到存放變量也可間接訪問(wèn),先找到存放變量i的地址的變量的地址的變量p,從,從其中得到變量其中得到變量i的地址,然后找到變量的地址,然后找到變量i的存儲(chǔ)單元,對(duì)的存儲(chǔ)單元,對(duì)它進(jìn)行存取范圍。它進(jìn)行存取范圍。 一個(gè)變量的地址稱為該變量的一個(gè)變量的地址稱為該變量的“指針指針”。如,地址。如,
5、地址2000是變量是變量i的指針。的指針。 C語(yǔ)言中,用一個(gè)變量存放指針語(yǔ)言中,用一個(gè)變量存放指針(地址地址),此變量稱為,此變量稱為指針變量指針變量,上述的變量,上述的變量p是指針變量,指針變量的值是是指針變量,指針變量的值是某個(gè)內(nèi)存單元某個(gè)內(nèi)存單元 的地址的地址(指針指針)。 嚴(yán)格地說(shuō),一個(gè)指針是一個(gè)地址,是一個(gè)常量;而一嚴(yán)格地說(shuō),一個(gè)指針是一個(gè)地址,是一個(gè)常量;而一個(gè)指針變量卻可以被賦予不同的指針值,是變量。但通個(gè)指針變量卻可以被賦予不同的指針值,是變量。但通常把指針變量簡(jiǎn)稱指針。常把指針變量簡(jiǎn)稱指針。指針變量的值不僅可以是變量的地址,也可以是其他數(shù)指針變量的值不僅可以是變量的地址,也可
6、以是其他數(shù)據(jù)結(jié)構(gòu)的地址。據(jù)結(jié)構(gòu)的地址。例如:在一個(gè)指針變量中可存放一個(gè)數(shù)組或一個(gè)函數(shù)的例如:在一個(gè)指針變量中可存放一個(gè)數(shù)組或一個(gè)函數(shù)的首地址。首地址。區(qū)別:區(qū)別:變量的指針變量的指針和和指針變量指針變量1.變量的指針就是變量的地址。變量的指針就是變量的地址。2.存放變量地址的變量是指針變量,它用來(lái)指向存放變量地址的變量是指針變量,它用來(lái)指向另一個(gè)變量。另一個(gè)變量。 為了表示指針變量和它所指向的變量之間的聯(lián)系,為了表示指針變量和它所指向的變量之間的聯(lián)系,在程序中用在程序中用“ * ”符號(hào)表示符號(hào)表示“指向指向”。 若已定義若已定義i_pointer為指針變量,則為指針變量,則* i_pointe
7、r是是i_pointer所指向的變量,因此所指向的變量,因此* i_pointer也代表一個(gè)也代表一個(gè)變量,它和變量變量,它和變量i是同一回事。是同一回事。下面兩個(gè)語(yǔ)句作用相同:下面兩個(gè)語(yǔ)句作用相同:(1)i=3;(2) * i_pointer=3;第二個(gè)語(yǔ)句含義是將第二個(gè)語(yǔ)句含義是將3賦給指針賦給指針變量變量i_pointer所指向的變量所指向的變量i.一、一、 指針變量的定義指針變量的定義指針變量在使用前必須先定義,一般形式為:指針變量在使用前必須先定義,一般形式為: 類型說(shuō)明符類型說(shuō)明符 *指針變量名;指針變量名;其中,其中,*表示這是一個(gè)指針變量,表示這是一個(gè)指針變量,類型說(shuō)明符類型說(shuō)
8、明符 表示該指表示該指針變量所指變量的數(shù)據(jù)類型。針變量所指變量的數(shù)據(jù)類型。例如:例如:int *p1;(其中其中p1(而不是而不是 *p1)是一個(gè)指向整型變量的指針變量,是一個(gè)指向整型變量的指針變量,它的值是某個(gè)整型變量的地址。它的值是某個(gè)整型變量的地址。) float *p2;(其中其中p2是指向浮點(diǎn)型變量的指針變量是指向浮點(diǎn)型變量的指針變量)說(shuō)明:說(shuō)明:(1)指針變量名的構(gòu)成原則是標(biāo)識(shí)符,前面必須有指針變量名的構(gòu)成原則是標(biāo)識(shí)符,前面必須有“ * ” , 表示該變量的類型是指針型變量。表示該變量的類型是指針型變量。(2)在一個(gè)定義語(yǔ)句中,可以同時(shí)定義普通變量、數(shù)組、在一個(gè)定義語(yǔ)句中,可以同時(shí)
9、定義普通變量、數(shù)組、 指針變量。指針變量。(3)類型說(shuō)明符說(shuō)明的數(shù)據(jù)類型不是指針變量中存放的類型說(shuō)明符說(shuō)明的數(shù)據(jù)類型不是指針變量中存放的數(shù)據(jù)的數(shù)據(jù)類型,而是它數(shù)據(jù)的數(shù)據(jù)類型,而是它將要指向的變量或數(shù)組的數(shù)據(jù)將要指向的變量或數(shù)組的數(shù)據(jù)類型類型。因此,一個(gè)指針變量只能用來(lái)指向同種數(shù)據(jù)類型。因此,一個(gè)指針變量只能用來(lái)指向同種數(shù)據(jù)類型的其他變量或數(shù)組,不能時(shí)而指向一個(gè)浮點(diǎn)型變量,時(shí)的其他變量或數(shù)組,不能時(shí)而指向一個(gè)浮點(diǎn)型變量,時(shí)而指向一個(gè)整型變量。而指向一個(gè)整型變量。二、二、 指針變量的引用指針變量的引用 指針變量中只能存放變量的地址,絕不能存放任何指針變量中只能存放變量的地址,絕不能存放任何其他數(shù)據(jù)
10、。其他數(shù)據(jù)。例如:例如:int *p; p=2000; /*2000是一個(gè)整數(shù)而不是一個(gè)地址是一個(gè)整數(shù)而不是一個(gè)地址*/C語(yǔ)言提供兩種有關(guān)的運(yùn)算符:語(yǔ)言提供兩種有關(guān)的運(yùn)算符:(1)&:取地址運(yùn)算符取地址運(yùn)算符 (用來(lái)表示變量的地址用來(lái)表示變量的地址)(2)* :取內(nèi)容運(yùn)算符取內(nèi)容運(yùn)算符 (用來(lái)取其指向的內(nèi)容,或稱用來(lái)取其指向的內(nèi)容,或稱“間接間接 訪問(wèn)訪問(wèn)”運(yùn)算符,或稱指針運(yùn)算符運(yùn)算符,或稱指針運(yùn)算符)兩種運(yùn)算符都是單目運(yùn)算符,其結(jié)合性都為自右向左,兩種運(yùn)算符都是單目運(yùn)算符,其結(jié)合性都為自右向左,優(yōu)先級(jí)別相同。優(yōu)先級(jí)別相同。例如:例如:&a為變量為變量a的地址,的地址, *p為
11、指針變量為指針變量p所指向的內(nèi)存單元的內(nèi)容所指向的內(nèi)存單元的內(nèi)容 (即即p所指向的變量的值所指向的變量的值)。說(shuō)明:說(shuō)明:(1)設(shè)有指向整型變量的指針變量設(shè)有指向整型變量的指針變量p,若要把整型變量,若要把整型變量a的地址賦予的地址賦予p,有以下方式:,有以下方式: 指針變量初始化的方法:指針變量初始化的方法: int a; int *p=&a; 賦值語(yǔ)句的方法:賦值語(yǔ)句的方法: int a,*p; p=&a;(2)指針運(yùn)算符指針運(yùn)算符*和指針變量說(shuō)明中的和指針變量說(shuō)明中的指針說(shuō)明符指針說(shuō)明符*不是不是一回事。后者表示其后的變量是指針類型,前者則是一一回事。后者表示其后的變量是
12、指針類型,前者則是一個(gè)運(yùn)算符用以表示指針變量所指的變量。個(gè)運(yùn)算符用以表示指針變量所指的變量。說(shuō)明:說(shuō)明:(3)如果已執(zhí)行了語(yǔ)句如果已執(zhí)行了語(yǔ)句p=&a; ,則:,則: &*p:先進(jìn)行:先進(jìn)行*p的運(yùn)算,即是變量的運(yùn)算,即是變量a,再執(zhí)行,再執(zhí)行&運(yùn)算運(yùn)算, 即變量即變量a的地址。的地址。因此因此&*p與與&a相同。相同。 *&a:先進(jìn)行:先進(jìn)行&a的運(yùn)算,即得的運(yùn)算,即得a的地址,再執(zhí)行的地址,再執(zhí)行*運(yùn)運(yùn) 算算, 即即&a所指向的變量,即變量所指向的變量,即變量a。 因此因此*&a與與a相同。相同。#include vo
13、id main( )int a,b; int *p1,*p2; a=100; b=10; p1=&a; p2=&b; printf(“%d,%d n”,a,b); printf(“%d,%d n”,*p1,*p2);例例: : 通過(guò)指針變量訪問(wèn)整型變量。通過(guò)指針變量訪問(wèn)整型變量。 運(yùn)行結(jié)果:運(yùn)行結(jié)果:100,10100,10#include void main( )int a=5,b,c,*p; p=&a; b=*p; c=a+*p; printf(“%d,%d n”,b,c);例例: : 通過(guò)指針變量進(jìn)行運(yùn)算。通過(guò)指針變量進(jìn)行運(yùn)算。 運(yùn)行結(jié)果:運(yùn)行結(jié)果:5,10說(shuō)明:
14、說(shuō)明:(1) 指針變量的運(yùn)算種類也是有限的,它只能進(jìn)行賦值指針變量的運(yùn)算種類也是有限的,它只能進(jìn)行賦值運(yùn)算和部分算術(shù)運(yùn)算及關(guān)系運(yùn)算。運(yùn)算和部分算術(shù)運(yùn)算及關(guān)系運(yùn)算。(2) 指針變量還可以賦空值,其賦空值后,則可以使用,指針變量還可以賦空值,其賦空值后,則可以使用,只是它不指向具體的變量而已。只是它不指向具體的變量而已。 例如:例如:#define NULL 0 int *p=NULL;三、三、 指針變量作函數(shù)參數(shù)指針變量作函數(shù)參數(shù)#includeswap(int x,int y)int t; t=x; x=y; y=t;void main( )int a=3,b=5; if(ab) swap(a
15、,b); printf(“a=%d,b=%d n”,a,b);C C語(yǔ)言是通過(guò)傳值將參數(shù)傳遞給函數(shù)的,對(duì)被調(diào)函數(shù)來(lái)說(shuō),語(yǔ)言是通過(guò)傳值將參數(shù)傳遞給函數(shù)的,對(duì)被調(diào)函數(shù)來(lái)說(shuō),沒(méi)有直接的方法來(lái)改變主調(diào)函數(shù)內(nèi)的變量的值。沒(méi)有直接的方法來(lái)改變主調(diào)函數(shù)內(nèi)的變量的值。 例:對(duì)兩個(gè)整數(shù)按大小順序輸出。例:對(duì)兩個(gè)整數(shù)按大小順序輸出。運(yùn)行結(jié)果:運(yùn)行結(jié)果:a=3,b=5#includeswap(int *x,int *y)int t; t=*x; *x=*y; *y=t;void main( )int a=3,b=5; if(ab) swap(&a,&b); printf(“a=%d,b=%d n”,
16、a,b);使主調(diào)函數(shù)傳遞指向要被改變量的指針,即可使被調(diào)函數(shù)使主調(diào)函數(shù)傳遞指向要被改變量的指針,即可使被調(diào)函數(shù)能改變主調(diào)函數(shù)的參數(shù)值。能改變主調(diào)函數(shù)的參數(shù)值。例:對(duì)兩個(gè)整數(shù)按大小順序輸出。例:對(duì)兩個(gè)整數(shù)按大小順序輸出。運(yùn)行結(jié)果:運(yùn)行結(jié)果:a=5,b=3 一個(gè)數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的,數(shù)一個(gè)數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的,數(shù)組名即是這塊連續(xù)內(nèi)存單元的首地址。組名即是這塊連續(xù)內(nèi)存單元的首地址。 一個(gè)變量有地址,一個(gè)數(shù)組包含若干元素,每一個(gè)變量有地址,一個(gè)數(shù)組包含若干元素,每個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元,它們都有個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元,它們都有相應(yīng)的地址。相應(yīng)的地址。指針變量
17、既然可以指向變量,當(dāng)然指針變量既然可以指向變量,當(dāng)然也可以指向數(shù)組元素也可以指向數(shù)組元素(把某一元素的地址放到一(把某一元素的地址放到一個(gè)指針變量中)。所謂個(gè)指針變量中)。所謂數(shù)組元素的指針就是數(shù)組數(shù)組元素的指針就是數(shù)組元素的地址元素的地址。 指向數(shù)組的指針變量稱為指向數(shù)組的指針變量稱為數(shù)組指針變量數(shù)組指針變量。其一般形式為:其一般形式為:類型說(shuō)明符類型說(shuō)明符 * *指針變量名;指針變量名;其中,類型說(shuō)明符表示所指數(shù)組的類型。從中可其中,類型說(shuō)明符表示所指數(shù)組的類型。從中可以看出指向數(shù)組的指針變量和指向普通變量的指以看出指向數(shù)組的指針變量和指向普通變量的指針變量的說(shuō)明是相同的。針變量的說(shuō)明是相
18、同的。一、指向數(shù)組元素的指針一、指向數(shù)組元素的指針說(shuō)明:說(shuō)明:設(shè)有實(shí)型數(shù)組設(shè)有實(shí)型數(shù)組a,指向,指向a的指針變量為的指針變量為pa,則有以下關(guān)系:,則有以下關(guān)系:pa,a,&a0均指向同一內(nèi)存單元,它們是數(shù)組均指向同一內(nèi)存單元,它們是數(shù)組a的首的首地址,即是地址,即是a0的首地址;的首地址;pa+1,a+1,&a1均指向元素均指向元素a1的地址;的地址;pa+i,a+i,&ai均指向元素均指向元素ai的地址。的地址。*(pa+i),*(a+i)是是pa+i 或或a+i 所指向的數(shù)組元素,即所指向的數(shù)組元素,即ai注意:注意:pa是變量,是變量,a與與&ai都是常
19、量都是常量(地址地址)。引入指針變量后,可以用兩種方法來(lái)訪問(wèn)數(shù)組元素:引入指針變量后,可以用兩種方法來(lái)訪問(wèn)數(shù)組元素:1.下標(biāo)法:采用下標(biāo)法:采用ai形式訪問(wèn)數(shù)組元素:形式訪問(wèn)數(shù)組元素:2.指針?lè)ǎ翰捎弥羔樂(lè)ǎ翰捎?(pa+i)或或*(a+i)形式,用間接訪問(wèn)的形式,用間接訪問(wèn)的 方法來(lái)訪問(wèn)數(shù)組元素,即通過(guò)指向數(shù)組元方法來(lái)訪問(wèn)數(shù)組元素,即通過(guò)指向數(shù)組元 素的指針找到所需的元素。素的指針找到所需的元素。例例:(1)int a; (2)int a; 初始化賦值初始化賦值 int *p=&a0; int *p=a; (3)int a; (4)int a; 賦值語(yǔ)句賦值賦值語(yǔ)句賦值 int *p
20、; int *p; p=&a0; p=a;按按C C語(yǔ)言的規(guī)定:如果指針語(yǔ)言的規(guī)定:如果指針p p已指向數(shù)組中的一個(gè)元素,已指向數(shù)組中的一個(gè)元素,則則p+1p+1指向同一數(shù)組中的下一個(gè)元素指向同一數(shù)組中的下一個(gè)元素,而不是將,而不是將p p的值的值( (地址值地址值) )簡(jiǎn)單地加簡(jiǎn)單地加1 1。例如:例如:數(shù)組元素是數(shù)組元素是floatfloat型,每個(gè)元素占型,每個(gè)元素占4 4個(gè)字節(jié),則個(gè)字節(jié),則p+1p+1意味意味著使著使p p的值的值( (地址值地址值) )加加4 4個(gè)字節(jié),以使它指向下一個(gè)元個(gè)字節(jié),以使它指向下一個(gè)元素,此時(shí),素,此時(shí),p+1p+1所代表的地址實(shí)際上是所代表的地
21、址實(shí)際上是p+1 dp+1 d,d d是一是一個(gè)數(shù)組元素所占的字節(jié)數(shù)。個(gè)數(shù)組元素所占的字節(jié)數(shù)。二、通過(guò)指針引用數(shù)組元素二、通過(guò)指針引用數(shù)組元素(1)下標(biāo)法下標(biāo)法 #include void main( )int a10,i; for(i=0;i10;i+) scanf(“%d”,&ai); printf(“n”); for(i=0;i10;i+) printf(“%d”,ai); printf(“n”);例:輸出數(shù)組中的全部元素。例:輸出數(shù)組中的全部元素。( (設(shè)一個(gè)設(shè)一個(gè)a a數(shù)組,整型,有數(shù)組,整型,有1010個(gè)元素,要輸出各元素的值有個(gè)元素,要輸出各元素的值有3 3種方法種方法)
22、 )(2)通過(guò)數(shù)組名計(jì)算數(shù)組元素通過(guò)數(shù)組名計(jì)算數(shù)組元素 的地址,找出元素的值的地址,找出元素的值 for(i=0;i10;i+) printf(“%d”,*(a+i);(3)用指針變量指向數(shù)組元素用指針變量指向數(shù)組元素 for(p=a;p(a+10);p+) printf(“%d”,*p);#include void main( )int a10,i,*p; p=a; for(i=0;i10;i+) scanf(“%d”,p+); printf(“n”); for(i=0;ipa表示表示qa處于高地址位置;處于高地址位置;pa處于低地址位置;處于低地址位置;#include void main
23、( )int a5,i,*pa,*qa; pa=qa=a; for(i=0;i5;i+) *qa=i; qa+; /*將指針將指針qa指向指向a數(shù)組中的下一元素?cái)?shù)組中的下一元素 */ for(i=0;paqa;i+) printf(“a%d=%-2d”,i,*pa); pa+; 例:通過(guò)指針變量的運(yùn)算輸出例:通過(guò)指針變量的運(yùn)算輸出a a數(shù)組中的數(shù)組中的5 5個(gè)元素。個(gè)元素。運(yùn)行結(jié)果:運(yùn)行結(jié)果:a0=0 a1=1 a2=2 a3=3 a4=42.指針變量的自增自減運(yùn)算指針變量的自增自減運(yùn)算如果先使如果先使p指向數(shù)組指向數(shù)組a的首元素的首元素(即即p=a),請(qǐng)分析:,請(qǐng)分析:(1)p+:使:使p指
24、向數(shù)組指向數(shù)組a的下一元素,即的下一元素,即a1。(2)*p+:由于元素符:由于元素符+和和*同優(yōu)先級(jí),結(jié)合方向?yàn)樽酝瑑?yōu)先級(jí),結(jié)合方向?yàn)樽?右向左,因此它等價(jià)于右向左,因此它等價(jià)于*(p+)。(3)*(p+) 與與*(+p)作用不同。作用不同。(4)(*p)+:表示:表示p所指向的元素值加所指向的元素值加1,它等價(jià)于,它等價(jià)于 (a0)+。若。若a0=3,則,則(*p)+的值為的值為4。 注意:是元素值加注意:是元素值加1,而不是指針值加,而不是指針值加1。前面已介紹過(guò)可以用數(shù)組名作函數(shù)的參數(shù),例如:前面已介紹過(guò)可以用數(shù)組名作函數(shù)的參數(shù),例如:void f(int arr ,int n) vo
25、id main( ) int array10; f(array,10); f (int arr , int n)但在編譯時(shí)是將但在編譯時(shí)是將arr按指針變量處理的,相當(dāng)于將函數(shù)按指針變量處理的,相當(dāng)于將函數(shù)f的首部寫(xiě)成的首部寫(xiě)成f (int *arr, int n)以上兩種寫(xiě)法是等價(jià)的。以上兩種寫(xiě)法是等價(jià)的。三、用數(shù)組名和數(shù)組指針變量作函數(shù)參數(shù)三、用數(shù)組名和數(shù)組指針變量作函數(shù)參數(shù)以變量名和數(shù)組名、數(shù)組指針變量作為函數(shù)參數(shù)的以變量名和數(shù)組名、數(shù)組指針變量作為函數(shù)參數(shù)的比較:比較:實(shí)參類型變量名數(shù)組名要求形參的類型變量名數(shù)組名或指針變量傳遞的信息變量的值 實(shí)參數(shù)組的首地址通過(guò)函數(shù)調(diào)用能否改變實(shí)參的
26、值不能能 歸納起來(lái),如果有一個(gè)實(shí)參數(shù)組,想在函數(shù)中改變歸納起來(lái),如果有一個(gè)實(shí)參數(shù)組,想在函數(shù)中改變此數(shù)組中的元素的值,實(shí)參與形參的對(duì)應(yīng)關(guān)系有以下此數(shù)組中的元素的值,實(shí)參與形參的對(duì)應(yīng)關(guān)系有以下種情況:種情況: (1) 形參和實(shí)參都用數(shù)組名,如:形參和實(shí)參都用數(shù)組名,如:void main() void (int ,int ) int ; (,); (2) 實(shí)參用數(shù)組名,形參用指針變量。如:實(shí)參用數(shù)組名,形參用指針變量。如:void () void (int *,int )int ; (,); (3)實(shí)參形參都用指針變量。例如:實(shí)參形參都用指針變量。例如:void main() void (int
27、 *,int )int , *p=a; (p,); (4) 實(shí)參為指針變量,形參為數(shù)組名。如:實(shí)參為指針變量,形參為數(shù)組名。如: void main() void (int x ,int ) ,*p=a; (p,); #include void main( )void inv(int *x,int n); int i,a10=3,7,9,11,0,6,7,5,4,2; printf(“The original array:n”); for(i=0;i10;i+) printf(“%d”,ai); printf(“n”); inv(a,10); printf(“The array has bee
28、n inverted:n”); for(i=0;i10;i+) printf(“%d”,ai); printf(“n”);例:將例:將a a數(shù)組中數(shù)組中n n個(gè)整數(shù)按相反順序存放。個(gè)整數(shù)按相反順序存放。void inv(int *x,int n)int *p,temp,*i,*j,m=(n-1)/2; i=x; j=x+n-1; p=x+m; for(;i=p;i+,j-) temp=*i; *i=*j; *j=temp; return;運(yùn)行結(jié)果:運(yùn)行結(jié)果:The original array:3,7,9,11,0,6,7,5,4,2The array has been inverted:2,
29、4,5,7,6,0,11,9,7,3四、四、 多維數(shù)組與指針多維數(shù)組與指針 用指針變量可以指向一維數(shù)組中的元素,用指針變量可以指向一維數(shù)組中的元素,也可以指向多維數(shù)組中的元素。也可以指向多維數(shù)組中的元素。下面以二維數(shù)組為例下面以二維數(shù)組為例。 1. 多維數(shù)組元素的地址的表示方法多維數(shù)組元素的地址的表示方法定義定義int a34=1,2,3,4,5,6,7,8,9,10,11,12;C語(yǔ)言允許把一個(gè)二維數(shù)組分解為多個(gè)一維數(shù)組來(lái)處語(yǔ)言允許把一個(gè)二維數(shù)組分解為多個(gè)一維數(shù)組來(lái)處理。理。a是一個(gè)數(shù)組名,是一個(gè)數(shù)組名, a數(shù)組包含數(shù)組包含3個(gè)元素:個(gè)元素:a0,a1,a2,而每一個(gè)元素又是一個(gè)一維數(shù)組,包
30、含而每一個(gè)元素又是一個(gè)一維數(shù)組,包含4個(gè)元素個(gè)元素(即即4個(gè)個(gè)列元素列元素)。如行元素。如行元素a0所代表的一維數(shù)組包含所代表的一維數(shù)組包含4個(gè)元個(gè)元素:素: a00,a01,a02,a03。故可以認(rèn)為二維數(shù)組是故可以認(rèn)為二維數(shù)組是“數(shù)組的數(shù)組數(shù)組的數(shù)組”,即二維數(shù)組,即二維數(shù)組a是由是由3個(gè)一維數(shù)組所組成的。個(gè)一維數(shù)組所組成的。從二維數(shù)組的角度看,從二維數(shù)組的角度看,a代表二維數(shù)組首元素的地代表二維數(shù)組首元素的地址。現(xiàn)在的首元素不是一個(gè)簡(jiǎn)單的整型元素,而是址。現(xiàn)在的首元素不是一個(gè)簡(jiǎn)單的整型元素,而是由由4個(gè)整型列元素所組成的一維數(shù)組,個(gè)整型列元素所組成的一維數(shù)組,因此因此a代表的是首行代表的
31、是首行(0行行)的首地址;的首地址; a+1代表代表1行的首地址;行的首地址; a+2代表代表2行的首地址。行的首地址。如果二維數(shù)組首行的首地址是如果二維數(shù)組首行的首地址是2000,則,則a+1的首地的首地址為址為a+4*2=2008。a0,a1,a2是一維數(shù)組名,而是一維數(shù)組名,而C語(yǔ)言規(guī)定了數(shù)組名語(yǔ)言規(guī)定了數(shù)組名代表數(shù)組首元素地址,代表數(shù)組首元素地址,因此因此a0代表一維數(shù)組代表一維數(shù)組a0中第中第0列元素的地址,即列元素的地址,即二維數(shù)組二維數(shù)組0行行0列元素的地址,即列元素的地址,即&a00; a1的值是的值是&a10 ; a2的值是的值是&a20。a0+0,a
32、0+1, a0+2,a0+3分別是分別是&a00, &a01, &a02, &a03。由于由于a0與與*(a+0)等價(jià),由于等價(jià),由于ai與與*(a+i)等價(jià),等價(jià),因此因此 a0+1、 *(a+0)+1都是都是&a01, a1+2、 *(a+1)+2都是都是&a12。如何用地址法表示如何用地址法表示&a01的值?由于的值?由于a0+1、 *(a+0)+1都是都是a01的地址,的地址,則則*(a0+1)、 *(*(a+0)+1)、*(*a+1)都是都是a01的值的值2.指向多維數(shù)組的指針變量指向多維數(shù)組的指針變量 (1) 指向數(shù)組元素的指
33、針變量指向數(shù)組元素的指針變量#include void main( )int a34=1,3,5,7,9,11,13,15,17,19,21,23; int *p; for(p=a0;pa0+12;p+) if(p-a0)%4=0) printf(“n”); printf(“%4d”,*p); printf(“n”);分析:分析:指針變量指針變量p是用是用“int *p;”定義的,定義的,它是指向整型數(shù)它是指向整型數(shù)據(jù)的據(jù)的,p+1所指向的元素是所指向的元素是p所指向的元素的下一元所指向的元素的下一元素。素。(2) 指向由指向由m個(gè)元素組成的一維數(shù)組的指針變量個(gè)元素組成的一維數(shù)組的指針變量 此
34、時(shí)此時(shí)p不是指向整型變量,而是指向一個(gè)包含不是指向整型變量,而是指向一個(gè)包含m個(gè)個(gè)元素的一維數(shù)組。元素的一維數(shù)組。 如果如果p先指向先指向a0,則,則p+1是指向是指向a1,p的增值以一的增值以一維數(shù)組的長(zhǎng)度為單位。維數(shù)組的長(zhǎng)度為單位。二維數(shù)組指針變量說(shuō)明的一般形式為:二維數(shù)組指針變量說(shuō)明的一般形式為:類型說(shuō)明符類型說(shuō)明符 (*指針變量名指針變量名)長(zhǎng)度長(zhǎng)度;其中,其中,“類型說(shuō)明符類型說(shuō)明符”是所指數(shù)組的數(shù)據(jù)類型;是所指數(shù)組的數(shù)據(jù)類型; “*”表示其后的變量是指針類型;表示其后的變量是指針類型; “長(zhǎng)度長(zhǎng)度”表示二維數(shù)組分解為多個(gè)一維數(shù)組時(shí),表示二維數(shù)組分解為多個(gè)一維數(shù)組時(shí),一維數(shù)組的長(zhǎng)度,
35、即是二維數(shù)組的列數(shù)。一維數(shù)組的長(zhǎng)度,即是二維數(shù)組的列數(shù)。注意:注意:(*指針變量名指針變量名)兩邊的括號(hào)不能省,如缺少括兩邊的括號(hào)不能省,如缺少括號(hào)則表示指針數(shù)組。號(hào)則表示指針數(shù)組。#includevoid main( )int a34=1,3,5,7,9,11,13,15,17,19,21,23; int (*p)4,i,j; p=a; scanf(“i=%d,j=%d”,&i,&j); printf(“a%d,%d=%d n”,i,j,*(*(p+i)+j);例:輸出二維數(shù)組任一行任一列元素的值。例:輸出二維數(shù)組任一行任一列元素的值。運(yùn)行結(jié)果:運(yùn)行結(jié)果:i=1,j=2a1,
36、2=13一、字符串的表示形式一、字符串的表示形式 對(duì)指向字符變量的指針變量應(yīng)賦予該字符變量的地址對(duì)指向字符變量的指針變量應(yīng)賦予該字符變量的地址例如:例如:char ch,*pch=&ch; 其中其中pch是一個(gè)指向字符變量是一個(gè)指向字符變量ch的指針變量。的指針變量。在在C語(yǔ)言中,可以用兩種方法訪問(wèn)一個(gè)字符串:語(yǔ)言中,可以用兩種方法訪問(wèn)一個(gè)字符串:1.用用字符數(shù)組字符數(shù)組存放一個(gè)字符串;存放一個(gè)字符串;2.用用字符指針字符指針指向一個(gè)字符串。指向一個(gè)字符串。 (可以不定義字符數(shù)組,而只定義一個(gè)字符指針,可以不定義字符數(shù)組,而只定義一個(gè)字符指針, 用字符指針指向字符串中的字符用字符指針指
37、向字符串中的字符)例:例:#include void main( ) char *string=“I love China!”; printf(“%s n”, string); 注意:注意:1.其中其中string是一個(gè)指向字符串的指針變量,把字符是一個(gè)指向字符串的指針變量,把字符串的首地址賦予串的首地址賦予string。2.定義定義string部分:部分:char *string=“I love China!”; 等價(jià)于:等價(jià)于:char *string; string=“I love China!”;但對(duì)字符數(shù)組使用方式但對(duì)字符數(shù)組使用方式char *str =“I love China!
38、”; 不能寫(xiě)為:不能寫(xiě)為:char *str80; str=“I love China!”;二、字符指針作函數(shù)參數(shù)二、字符指針作函數(shù)參數(shù) 將一個(gè)字符串從一個(gè)函數(shù)傳遞到另一個(gè)函數(shù),可以用將一個(gè)字符串從一個(gè)函數(shù)傳遞到另一個(gè)函數(shù),可以用地址傳遞地址傳遞的辦法,即用的辦法,即用字符數(shù)組名字符數(shù)組名作參數(shù),也可以用作參數(shù),也可以用指向字符的指針變量指向字符的指針變量作參數(shù)。作參數(shù)。在被調(diào)函數(shù)中可以改變字符串的內(nèi)容,在主調(diào)函數(shù)中在被調(diào)函數(shù)中可以改變字符串的內(nèi)容,在主調(diào)函數(shù)中可以得到改變了的字符串。可以得到改變了的字符串。(1)實(shí)參用指針變量,形參用數(shù)組名實(shí)參用指針變量,形參用數(shù)組名#includevoid
39、 main( )void copy_string(char str1 ,char str2 ); char s1 =“I am a teacher.”; char s2 =“You are a student.”; char *a=s1,*b=s2; printf(“string a=%snstring b=%sn”,a,b); printf(“copy string a to string b:n”); copy_string(a,b); printf(“string a=%snstring b=%sn”,a,b);例:用函數(shù)調(diào)用實(shí)現(xiàn)字符串的復(fù)制。例:用函數(shù)調(diào)用實(shí)現(xiàn)字符串的復(fù)制。void c
40、opy_string(char str1 ,char str2 )int i=0; while(str1 !=0) str2i=str1i; i+; str2i= 0;例:用函數(shù)調(diào)用實(shí)現(xiàn)字符串的復(fù)制。例:用函數(shù)調(diào)用實(shí)現(xiàn)字符串的復(fù)制。運(yùn)行結(jié)果:運(yùn)行結(jié)果:string a= I am a teacher.string b= You are a student.copy string a to string b:string a= I am a teacher.string b= I am a teacher.(2)實(shí)參、形參都用字符指針變量實(shí)參、形參都用字符指針變量#includevoid mai
41、n( )void copy_string(char *str1,char *str2); char s1 =“I am a teacher.”; char s2 =“You are a student.”; char *a=s1,*b=s2; printf(“string a=%snstring b=%sn”,a,b); printf(“copy string a to string b:n”); copy_string(a,b); printf(“string a=%snstring b=%sn”,a,b);void copy_string(char *str1,char *str2)int
42、 i=0; for(;*str1!=0;str1+,str2+) *str2=*str1; *str2= 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:string a= I am a teacher.string b= You are a student.copy string a to string b:string a= I am a teacher.string b= I am a teacher. 可以用指針變量指向整型變量、字符串、數(shù)組,也可以用指針變量指向整型變量、字符串、數(shù)組,也可以指向一個(gè)可以指向一個(gè)函數(shù)函數(shù)。 C語(yǔ)言中規(guī)定,一個(gè)函數(shù)占用一段連續(xù)的內(nèi)存單元,語(yǔ)言中規(guī)定,一個(gè)函數(shù)占用一段連續(xù)的內(nèi)存單
43、元,函數(shù)名即是函數(shù)所占內(nèi)存單元的首地址函數(shù)名即是函數(shù)所占內(nèi)存單元的首地址(或稱函數(shù)的或稱函數(shù)的入口地址,函數(shù)的指針入口地址,函數(shù)的指針)。 可以把可以把函數(shù)的首地址函數(shù)的首地址(即入口地址即入口地址)賦予一個(gè)指針變賦予一個(gè)指針變量量,使該指針變量指向該函數(shù),然后通過(guò)該指針變量,使該指針變量指向該函數(shù),然后通過(guò)該指針變量可以找到并調(diào)用此函數(shù)。可以找到并調(diào)用此函數(shù)。把指向函數(shù)的指針變量稱為把指向函數(shù)的指針變量稱為“函數(shù)指針變量函數(shù)指針變量”。函數(shù)指針變量定義的一般形式為:函數(shù)指針變量定義的一般形式為:類型說(shuō)明符類型說(shuō)明符 (*指針變量名指針變量名)(函數(shù)參數(shù)表列函數(shù)參數(shù)表列);其中,其中,“類型說(shuō)
44、明符類型說(shuō)明符”表示被指函數(shù)的返回值的類型。表示被指函數(shù)的返回值的類型。例:例:int (*p)(int,int); 其中其中p是一個(gè)指向函數(shù)的指針變量,該函數(shù)有兩是一個(gè)指向函數(shù)的指針變量,該函數(shù)有兩個(gè)整型參數(shù),函數(shù)值為整型。個(gè)整型參數(shù),函數(shù)值為整型。#includeint max(int a,int b)return(ab)?a:b);void main( )int (*pmax)(int,int),x,y,z; pmax=max; printf(“Input two numbers:n”); scanf(“%d%d”,&x,&y); z=(*pmax)(x,y); /*等價(jià)
45、于等價(jià)于z=max(x,y);*/ printf(“max=%d”,z);例:求例:求a a和和b b中的最大者。中的最大者。( (通過(guò)指針變量調(diào)用函數(shù)通過(guò)指針變量調(diào)用函數(shù)) )說(shuō)明:說(shuō)明:(1)定義定義“int (*pmax)(int,int);”中的中的*pmax兩側(cè)的兩側(cè)的括括號(hào)不可省略號(hào)不可省略,表示,表示pmax先與先與*結(jié)合,是指針變量,結(jié)合,是指針變量,然后再與后面的然后再與后面的( )結(jié)合,表示此指針變量指向函數(shù),結(jié)合,表示此指針變量指向函數(shù),這個(gè)函數(shù)值這個(gè)函數(shù)值(即函數(shù)返回值即函數(shù)返回值)是整型的。是整型的。 若寫(xiě)成若寫(xiě)成“int *pmax(int,int);”,則由,則由
46、( )優(yōu)先級(jí)高于優(yōu)先級(jí)高于*,它就成了聲明一個(gè)它就成了聲明一個(gè)pmax函數(shù)了,此函數(shù)的返回值函數(shù)了,此函數(shù)的返回值是指向整型變量的指針。是指向整型變量的指針。說(shuō)明:說(shuō)明:(2)函數(shù)指針變量不能進(jìn)行算術(shù)運(yùn)算函數(shù)指針變量不能進(jìn)行算術(shù)運(yùn)算,如,如p+、p-、p+n等運(yùn)算是無(wú)意義的。等運(yùn)算是無(wú)意義的。 因?yàn)楹瘮?shù)指針變量因?yàn)楹瘮?shù)指針變量p只能指向函數(shù)的入口處,而不只能指向函數(shù)的入口處,而不能指向函數(shù)中的某一條指令處,因此不能用能指向函數(shù)中的某一條指令處,因此不能用(*p+1)來(lái)來(lái)表示函數(shù)的下一條指令。表示函數(shù)的下一條指令。 一個(gè)函數(shù)可以返回一個(gè)整型值、字符值、實(shí)型值等,一個(gè)函數(shù)可以返回一個(gè)整型值、字符值
47、、實(shí)型值等,也可以返回指針型是數(shù)據(jù),即地址。也可以返回指針型是數(shù)據(jù),即地址。這種返回指針值的函數(shù),稱為這種返回指針值的函數(shù),稱為指針型函數(shù)指針型函數(shù)。一般定義形式為:一般定義形式為:類型說(shuō)明符類型說(shuō)明符 *函數(shù)名函數(shù)名(形參表列形參表列);其中,其中,“*”在函數(shù)名之前,表示此函數(shù)是指針型函數(shù);在函數(shù)名之前,表示此函數(shù)是指針型函數(shù); “類型說(shuō)明符類型說(shuō)明符”表示被指函數(shù)的返回值的類型。表示被指函數(shù)的返回值的類型。#includefloat *search(float (*pointer)4,int n)float *pt; pt=*(pointer+n); return(pt);例:有若干個(gè)學(xué)
48、生的成績(jī)例:有若干個(gè)學(xué)生的成績(jī)( (每個(gè)學(xué)生有每個(gè)學(xué)生有4 4門(mén)課程門(mén)課程) ),要求在,要求在用戶輸入學(xué)生序號(hào)以后,能輸出該學(xué)生的全部成績(jī)。用戶輸入學(xué)生序號(hào)以后,能輸出該學(xué)生的全部成績(jī)。 用指針函數(shù)來(lái)實(shí)現(xiàn)。用指針函數(shù)來(lái)實(shí)現(xiàn)。void main( )float score 4=60,70,80,90,56,89,67,88, 34,78,90,66; float *p; int i,m; printf(“enter the number of student:”); scanf(“%d”,&m); printf(“The scores of No.%d are:n”,m); p=sea
49、rch(score,m); for(i=0;i4;i+) printf(“%5.2ft”,*(p+i); printf(“n”);運(yùn)行結(jié)果:運(yùn)行結(jié)果:enter the number of student:1 The scores of No.1 are:56.00 89.00 67.00 88.00一、一、 指針數(shù)組指針數(shù)組 一個(gè)數(shù)組,若其元素均為指針類型數(shù)據(jù),稱為一個(gè)數(shù)組,若其元素均為指針類型數(shù)據(jù),稱為指針指針數(shù)組數(shù)組。即指針數(shù)組中的每一個(gè)元素都相當(dāng)于一個(gè)指針變量。即指針數(shù)組中的每一個(gè)元素都相當(dāng)于一個(gè)指針變量。指針數(shù)組說(shuō)明的一般形式為:指針數(shù)組說(shuō)明的一般形式為:類型說(shuō)明符類型說(shuō)明符 *數(shù)組
50、名數(shù)組名數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度;其中,其中,“類型說(shuō)明符類型說(shuō)明符”為指針值所指向的變量的類型。為指針值所指向的變量的類型。例:例:int *p4; 由于由于 比比*優(yōu)先級(jí)高,因此優(yōu)先級(jí)高,因此p先與先與4結(jié)合,說(shuō)明結(jié)合,說(shuō)明p是是一個(gè)數(shù)組,有一個(gè)數(shù)組,有4個(gè)元素。個(gè)元素。 *表示其后的數(shù)組為指針類型的,每個(gè)數(shù)組元素表示其后的數(shù)組為指針類型的,每個(gè)數(shù)組元素(即即指針變量指針變量)都可指向整型變量。都可指向整型變量。說(shuō)明:說(shuō)明:(1)通??捎靡粋€(gè)指針數(shù)組來(lái)指向一個(gè)二維數(shù)組通常可用一個(gè)指針數(shù)組來(lái)指向一個(gè)二維數(shù)組,指,指針數(shù)組中的每個(gè)元素被賦予二維數(shù)組每一行的首地針數(shù)組中的每個(gè)元素被賦予二維數(shù)組每一行的首
51、地址,因此也可理解為指向一個(gè)一維數(shù)組。址,因此也可理解為指向一個(gè)一維數(shù)組。(2)指針數(shù)組也常用來(lái)表示一組字符串指針數(shù)組也常用來(lái)表示一組字符串,此時(shí)指針數(shù),此時(shí)指針數(shù)組的每個(gè)元素被賦予一個(gè)字符串的首地址。組的每個(gè)元素被賦予一個(gè)字符串的首地址。注意:注意:指針數(shù)組和二維數(shù)組指針變量的區(qū)別:指針數(shù)組和二維數(shù)組指針變量的區(qū)別:兩者雖然都可用來(lái)表示二維數(shù)組,但是其表示方法兩者雖然都可用來(lái)表示二維數(shù)組,但是其表示方法和意義是不同的。二維數(shù)組指針變量是和意義是不同的。二維數(shù)組指針變量是單個(gè)單個(gè)變量,變量,而指針數(shù)組表示的是而指針數(shù)組表示的是多個(gè)多個(gè)指針變量。指針變量。例:例:int (*p)4;表示表示p是
52、一個(gè)指向二維數(shù)組的指針變是一個(gè)指向二維數(shù)組的指針變量,該二維數(shù)組的列數(shù)為量,該二維數(shù)組的列數(shù)為4或分解為一維數(shù)組的長(zhǎng)度或分解為一維數(shù)組的長(zhǎng)度為為4。 int *p4;表示表示p是一個(gè)指針數(shù)組,有是一個(gè)指針數(shù)組,有4個(gè)元素個(gè)元素p0,p1,p2,p3都為指針變量。都為指針變量。#includechar *day_name(char *name,int n)char *p1,*p2; p1=*name; p2=*(name+n); return(n7)?p1:p2);例:用指針數(shù)組作函數(shù)參數(shù),編寫(xiě)輸入一個(gè)例:用指針數(shù)組作函數(shù)參數(shù),編寫(xiě)輸入一個(gè)1717之間的整之間的整數(shù),輸出對(duì)應(yīng)的星期名。數(shù),輸出對(duì)應(yīng)的星期名。void main()char *name=Illegal day,Monday,Tuesday, Wednesday,Thursday,Friday, Saturday,Sunday; char *ps; int i; printf(Input Day No:); scanf(%d,&i); ps=day_name(name,i)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家紡企業(yè)社會(huì)責(zé)任報(bào)告編寫(xiě)考核試卷
- 面門(mén)出租合同范本
- 電影合同范本4篇
- 煤炭居間費(fèi)合同范本
- 小學(xué)生頒獎(jiǎng)視頻模板課件
- 基于大數(shù)據(jù)的智能種植管理平臺(tái)構(gòu)建
- 人才派遣與招聘協(xié)議
- 日常照護(hù)培訓(xùn)課件
- 農(nóng)業(yè)生產(chǎn)安全防范指南
- 互聯(lián)網(wǎng)行業(yè)數(shù)據(jù)安全防護(hù)策略
- 靜脈藥物配置中心課件
- DB11T 852-2019 有限空間作業(yè)安全技術(shù)規(guī)范
- 材料化學(xué)合成與制備技術(shù)
- 金屬工藝學(xué)(鑄造)課件
- DB23∕T 343-2003 國(guó)有林區(qū)更新造林技術(shù)規(guī)程
- 醫(yī)療廢物管理組織機(jī)構(gòu)架構(gòu)圖
- cjj/t135-2009《透水水泥混凝土路面技術(shù)規(guī)程》
- 短時(shí)耐受電流
- 社保人事專員績(jī)效考核表
- 上海世博會(huì)對(duì)上海城市競(jìng)爭(zhēng)力影響的評(píng)估模型
- 河南書(shū)法家協(xié)會(huì)入會(huì)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論