數(shù)據(jù)結(jié)構(gòu)第一章c語言指針_第1頁
數(shù)據(jù)結(jié)構(gòu)第一章c語言指針_第2頁
數(shù)據(jù)結(jié)構(gòu)第一章c語言指針_第3頁
數(shù)據(jù)結(jié)構(gòu)第一章c語言指針_第4頁
數(shù)據(jù)結(jié)構(gòu)第一章c語言指針_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言指針專題Copyright2008ByNeusoftGroup.Allrightsreserved變量變量類型局部變量全局變量靜態(tài)變量請(qǐng)問下面代碼中,哪些是局部變量?哪些是全局變量?哪些是靜態(tài)變量?

intpi=3;

intArea(intr,int*sum) { intb; staticintc=0; b=pi*r*r; c+=b; *sum=c; returnb; }內(nèi)存內(nèi)存類型內(nèi)存分為靜態(tài)內(nèi)存和動(dòng)態(tài)內(nèi)存,動(dòng)態(tài)內(nèi)存又可以分為堆內(nèi)存和棧內(nèi)存。內(nèi)存分配方式相應(yīng)的分為靜態(tài)存儲(chǔ)區(qū)域分配、棧創(chuàng)建、堆分配。靜態(tài)存儲(chǔ)區(qū)域分配程序在編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。例如前面例子中的全局變量(intpi)、靜態(tài)變量(staticintc)和常量;棧創(chuàng)建函數(shù)執(zhí)行的時(shí)候,函數(shù)內(nèi)的局部變量(包括函數(shù)參數(shù))的存儲(chǔ)單元都是在棧上創(chuàng)建的,函數(shù)執(zhí)行后占用棧的存儲(chǔ)單元會(huì)自動(dòng)被釋放。這種分配效率很高,但是分配的內(nèi)存容量有限。占用棧內(nèi)存多了,會(huì)出現(xiàn)棧溢出;例如函數(shù)area的參數(shù)(intr,int*sum)和局部變量(intb)就是棧創(chuàng)建的。堆分配也稱動(dòng)態(tài)存儲(chǔ)分配,是指程序在運(yùn)行時(shí)候用malloc申請(qǐng)的內(nèi)存,程序員自己負(fù)責(zé)在何時(shí)用free釋放內(nèi)存。這種分配雖然靈活,但是使用時(shí)容易出錯(cuò),需要注意。內(nèi)存分為4個(gè)區(qū)域:棧區(qū)auto靜態(tài)區(qū)static堆區(qū)heap代碼區(qū)code數(shù)據(jù)區(qū)代碼區(qū)memory存放程序的代碼存放程序的全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)存放程序動(dòng)態(tài)申請(qǐng)的數(shù)據(jù)存放程序的局部數(shù)據(jù)和參數(shù)申請(qǐng)大小的限制①Stack:棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的。②Heap:堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。堆的大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見,堆獲得的空間比較靈活,也比較大。內(nèi)存1指針的概念變量與地址程序中:inti;

floatk;

內(nèi)存中每個(gè)字節(jié)有一個(gè)編號(hào)-----地址…...…...200020042008內(nèi)存0ik

編譯或函數(shù)調(diào)用時(shí)為其分配內(nèi)存單元變量是對(duì)程序中數(shù)據(jù)存儲(chǔ)空間的抽象…...…...200020042008整型變量i10變量i_pointer指針與指針變量指針:一個(gè)變量的地址指針變量:專門存放變量地址的變量2000指針指針變量

變量的內(nèi)容

變量的地址i_pointer200010i變量i地址是2000,指針變量i_pointer地址是2004直接訪問與間接訪問直接訪問:按變量地址存取變量值間接訪問:通過存放變量地址的變量去訪問變量例

i=3;-----直接訪問指針變量…...…...20002008整型變量i10變量i_pointer200420003例*i_pointer=20;-----間接訪問20指針變量…...…...20002008200C整型變量i10變量i_pointer20042000整型變量k例

k=i;--直接訪問

k=*i_pointer;--間接訪問10例

k=i;k=*i_pointer;2指針變量:指針變量與其所指向的變量之間的關(guān)系指針變量的定義一般形式:[存儲(chǔ)類型]

數(shù)據(jù)類型*指針名;3變量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=33變量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=3合法標(biāo)識(shí)符指針變量本身的存儲(chǔ)類型指針的目標(biāo)變量的數(shù)據(jù)類型表示定義指針變量不是‘*’運(yùn)算符例int

*p1,*p2;float*q;staticchar*name;注意:1、int*p1,*p2;

與int*p1,p2;2、指針變量名是p1,p2,不是*p1,*p23、指針變量只能指向定義時(shí)所規(guī)定類型的變量4、指針變量定義后,變量值不確定,應(yīng)用前必須先賦值指針變量的初始化一般形式:[存儲(chǔ)類型]

數(shù)據(jù)類型*指針名=初始地址值;賦給指針變量例inti,j;

int*pointer_1,*pointer_2;pointer_1=&i;pointer_2=&j;一個(gè)指針變量只能指向同一個(gè)類型的變量例

inti,j;

float*pointer;pointer=&i;例floati,j;

float*pointer_1,*pointer_2;pointer_1=&i;pointer_2=&j;例:通過指針變量訪問整型變量#include<stdio.h>voidmain(){inta,b;int*pointer_1,*pointer_2;a=100;b=10;pointer_1=&a;pointer_2=&b;printf("%d,%d",a,b);printf("%d,%d",*pointer_1,*pointer_2);}運(yùn)行結(jié)果;100,10100,10運(yùn)行結(jié)果:a=5,b=9max=9,min=5例輸入兩個(gè)數(shù),并使其從大到小輸出#include<stdio.h>voidmain(){int*p1,*p2,*p,a,b;scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("a=%d,b=%d\n",a,b);printf("max=%d,min=%d\n",*p1,*p2);}方法:交換指針變量的值零指針與空類型指針零指針:(空指針)定義:指針變量值為零表示:int*p=0;

p指向地址為0的單元,系統(tǒng)保證該單元不作它用表示指針變量值沒有意義#defineNULL0int*p=NULL:p=NULL與未對(duì)p賦值不同用途:避免指針變量的非法引用在程序中常作為狀態(tài)比較

例int*p;......while(p!=NULL){...…}void*類型指針表示:void*p;使用時(shí)要進(jìn)行強(qiáng)制類型轉(zhuǎn)換例char*p1;void*p2;p1=(char*)p2;p2=(void*)p1;表示不指定p是指向哪一種類型數(shù)據(jù)的指針變量指針變量作為函數(shù)參數(shù)——地址傳遞特點(diǎn):共享內(nèi)存,“雙向”傳遞voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){inta,b;scanf("%d,%d",&a,&b);if(a<b)swap(a,b);printf("\n%d,%d\n",a,b);}例

調(diào)用子函數(shù),將數(shù)從大到小輸出…...…...20002010201420042008200C5變量a

變量b(main)9

變量temp

變量y

變量x(swap)55959COPY指針變量作為函數(shù)參數(shù)——地址傳遞特點(diǎn):共享內(nèi)存,“雙向”傳遞swap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;scanf("%d,%d",&a,&b);if(a<b)swap(a,b);printf("\n%d,%d\n",a,b);}例調(diào)用子函數(shù),將數(shù)從大到小輸出值傳遞…...…...20002010201420042008200C5變量a

變量b(main)9運(yùn)行結(jié)果:5,9voidswap(intx,inty){intt;t=x;x=y;y=t;}voidmain(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);

pointer_1=&a;pointer_2=&b;if(a<b)

swap(*pointer_1,*pointer_2);printf("\n%d,%d\n",a,b);}例調(diào)用子函數(shù),將數(shù)從大到小輸出…...20002010201420042008200C2018201C2020...59整型a

整型b(main)pointer_1pointer_2200020049COPY(swap)整型x整型y整型t5559voidswap(intx,inty){intt;t=x;x=y;y=t;}voidmain(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);

pointer_1=&a;pointer_2=&b;if(a<b)

swap(*pointer_1,*pointer_2);printf("\n%d,%d\n",a,b);}例調(diào)用子函數(shù),將數(shù)從大到小輸出值傳遞…...…...20002010201420042008200C59運(yùn)行結(jié)果:5,9整型a

整型b(main)pointer_1pointer_220002004voidswap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}voidmain(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);

pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}…...20002010201420042008200C2018201C2020...59整型變量a

整型變量b(main)指針pointer_1指針pointer_220002004(swap)指針p1指針p2整型p5920002004COPY5例調(diào)用子函數(shù),將數(shù)從大到小輸出swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}…...20002010201420042008200C2018201C2020...59整型變量a

整型變量b(main)指針pointer_1指針pointer_22000200459例調(diào)用子函數(shù),將數(shù)從大到小輸出運(yùn)行結(jié)果:9,5地址傳遞方法:交換整型變量的值3

指針與數(shù)組指向數(shù)組元素的指針變量定義inta[10];int*p;賦值p=&a[0];

等價(jià)于

p=a;2000a[0]2004a[1]2008a[2]200ca[3]2010a[9]...整型指針p2000p數(shù)組名是表示數(shù)組首地址的地址常量p=a的作用是把數(shù)組的首地址賦給指針變量P,而不是把數(shù)組a的各元素賦給p。

也可,在定義指針變量時(shí)賦初值

int*p=a;數(shù)組元素表示方法a[0]a[1]a[2]a[3]a[9]...aa+9a+1a+2地址元素下標(biāo)法a[0]a[1]a[2]a[9]a[0]a[1]a[2]a[3]a[9]...pp+9p+1p+2地址元素指針法*p*(p+1)*(p+2)*(p+9)[]變址運(yùn)算符a[i]

*(a+i)a[i]p[i]*(p+i)*(a+i)*a*(a+1)*(a+2)*(a+9)p[0]p[1]p[2]p[9]例輸出數(shù)組中的全部元素(3種方法)voidmain(){inta[10]inti;for(i=0;i<10;i++) scanf("%d",&a[i]);printf("\n");for(i=0;i<10;i++) printf("%d",a[i]);}(1)下標(biāo)法voidmain(){inta[10]inti;for(i=0;i<10;i++) scanf("%d",&a[i]);printf("\n");for(i=0;i<10;i++) printf("%d",*(a+i));}(2)數(shù)組名計(jì)算數(shù)組元素的地址voidmain(){inta[10];int*p,i;for(i=0;i<10;i++) scanf("%d",&a[i]);printf("\n");for(p=a;p<(a+10);p++) printf("%d",*p);}(3)指針變量法指針變量的運(yùn)算p++,使p指向下一元素a[1];*p++,++和*同優(yōu)先級(jí),自右至左,等價(jià)于*(p++)*(p++)和*(++p)作用不同。前者,先取*p值,再使p+1。后者先使p+1,再取*p。++和--運(yùn)算符可以使指針變量向前或向后移動(dòng)。若p1與p2指向同一數(shù)組,p1-p2=兩指針間元素個(gè)數(shù)(p1-p2)/d例voidmain(){inta[]={5,8,7,6,2,7,3};inty,*p=&a[1];y=(*--p)++;printf("%d",y);printf("%d",a[0]);}輸出:56pp58762730123456a例注意指針變量的運(yùn)算6數(shù)組名作函數(shù)參數(shù)main(){intarray[10];……f(array,10);……}f(intarr[],intn){……}array實(shí)參數(shù)組名,代表該數(shù)組首元素的地址arr形參數(shù)組名,用來接收從實(shí)參傳遞過來的數(shù)組首元素的地址,實(shí)際上,形參數(shù)組名是按指針變量處理的f(int*arr,intn){……}*(arr+i)和arr[i]等價(jià)形參數(shù)組和實(shí)參數(shù)組共占同一段內(nèi)存單元,在函數(shù)調(diào)用期間,如果改變了形參數(shù)組的值,在主調(diào)函數(shù)中可以使用這些已改變的值。數(shù)組中形參和實(shí)參對(duì)應(yīng)關(guān)系實(shí)參形參數(shù)組名指針變量數(shù)組名指針變量數(shù)組名數(shù)組名指針變量指針變量序號(hào)1234main(){inta[10];

f(a,10);}f(intx[],intn){……}main(){inta[10];

f(a,10);

}f(int*x,intn){……}main(){inta[10],*p;p=a;

f(p,10);}f(int*x,intn){……}main(){inta[10],*p;p=a;

f(p,10);}f(intx[],intn){……}例將數(shù)組a中的n個(gè)整數(shù)按相反順序存放實(shí)參與形參均用數(shù)組名voidinv(intx[],intn){intt,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i; t=x[i];x[i]=x[j];x[j]=t;}}voidmain(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted:\n");for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");}a[0]和a[n-1]對(duì)換a[1]和a[n-2]對(duì)換a[int((n-1)/2)]和

a[n-int((n-1)/2)-1]對(duì)換a[0]a[8]a[1]a[7]奇數(shù)n=9a[4]a[4]ij379110675420123456789ijijijji11760594723m=4偶數(shù)n=10a[0]a[9]a[1]a[8]a[4]a[5]例將數(shù)組a中的n個(gè)整數(shù)按相反順序存放voidinv(int*x,intn){intt,*p,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}voidmain(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted:\n");for(i=0;i<10;i++)printf("%d,",a[i]);printf("\n");}實(shí)參用數(shù)組名,形參用指針變量37911067542a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]xp=x+ma數(shù)組60711594723ijijijjiji例將數(shù)組a中的n個(gè)整數(shù)按相反順序存放voidinv(int*x,intn){intt,*i,*j,*p,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}voidmain(){inti,a[10],*p=a;for(i=0;i<10;i++,p++)scanf("%d",p);

p=a;

inv(p,10);printf("Thearrayhasbeenreverted:\n");for(p=a;p<a+10;p++)printf("%d",*p);}實(shí)參與形參均用指針變量例將數(shù)組a中的n個(gè)整數(shù)按相反順序存放voidinv(intx[],intn){intt,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}voidmain(){inti,a[10],*p=a;for(i=0;i<10;i++,p++)scanf("%d",p);

p=a;

inv(p,10);printf("Thearrayhasbeenreverted:\n");for(p=arr;p<arr+10;p++)printf("%d",*p);}實(shí)參用指針變量,形參用數(shù)組名多維數(shù)組與指針多維數(shù)組的地址a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]1357911131517192123a[0]a[1]a[2]===a定義二維數(shù)組:inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};二維數(shù)組a是由三個(gè)一維數(shù)組組成的。a數(shù)組包含三個(gè)元素:a[0],a[1],a[2]。每個(gè)元素又是一個(gè)一維數(shù)組包含四個(gè)元素。a[0],a[1],a[2]是一維數(shù)組名,數(shù)組名代表數(shù)組的首地址,a[0]=&a[0][0],a[1]=&a[1][0],a[2]=&a[2][0]。200012004320085200C720109201411201813201C15202017202419202821203023aa+1a+2a[0]+0a[0]+1a[0]+2a[0]+3a[i]和*(a+i)等價(jià),所以a[i]+j和*(a+i)+j是a[i][j]的地址*(a[i]+j)或*(*(a+i)+j)是二維數(shù)組a[i][j]的值行指針列指針表示形式含義地址a二維數(shù)組名,數(shù)組首地址a[0],*(a+0),*a第0行第0列元素地址a+1,&a[1]第1行首地址a[1],*(a+1)第1行第0列元素地址a[1]+2,*(a+1)+2,&a[1][2]第1行第2列元素地址*(a[1]+2),*(*(a+1)+2),a[1][2]第1行第2列元素值20002000201020102018132000a[0][0]=12004a[0][1]=32008a[0][2]=5200Ca[0][3]=72010a[1][0]=92014a[1][1]=112018a[1][2]=13201Ca[1][3]=152020a[2][0]=172024a[2][1]=192028a[2][2]=21202Ca[2][3]=23第0行第1行第2行第0列第1列第2列第3列注意:a+1=*(a+1)=2010&a[1]=a[1]=2010a+i=&a[i]=a[i]=*(a+i)=&a[i][0]對(duì)二維數(shù)組inta[3][4],有a-----二維數(shù)組的首地址,即第0行的首地址a+i-----第i行的首地址a[i]*(a+i)------第i行第0列的元素地址a[i]+j*(a+i)+j-----第i行第j列的元素地址*(a[i]+j)*(*(a+i)+j)a[i][j]a+i=&a[i]=a[i]=*(a+i)=&a[i][0],值相等,含義不同a+i&a[i],表示第i行首地址,指向行a[i]*(a+i)&a[i][0],表示第i行第0列元素地址,指向列例用指針變量輸出數(shù)組元素的值voidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p<a[0]+12;p++){if((p-a[0])%4==0)printf("\n");printf("%4d",*p);}}運(yùn)行結(jié)果:

1357911131517192123二維數(shù)組的指針變量指向二維數(shù)組元素的指針變量inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]p對(duì)于m×n的數(shù)組,a[i][j]在數(shù)組中的相對(duì)位置計(jì)算公式為:i*n+j如:對(duì)于3×4的數(shù)組,其a[2][3]的相對(duì)位置為2*4+3=11指向由m個(gè)元素組成的一維數(shù)組的指針變量定義形式:數(shù)據(jù)類型

(*指針名)[一維數(shù)組維數(shù)];

例int(*p)[4];定義了指向包含4個(gè)整型元素的一維數(shù)組()不能少int(*p)[4]與int*p[4]不同(指針數(shù)組)p的值是一維數(shù)組的首地址,p是行指針可讓p指向二維數(shù)組某一行如inta[3][4];int(*p)[4];p=a;一維數(shù)組指針變量維數(shù)和二維數(shù)組列數(shù)必須相同例輸出二維數(shù)組任一行任一列元素的值voidmain(){inta[3][4]={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));}運(yùn)行結(jié)果:i=1,j=2a[1][2]=13函數(shù)指針變量賦值:如p=max;,只需函數(shù)名,不必給參數(shù)函數(shù)返回值的數(shù)據(jù)類型專門存放函數(shù)入口地址可指向返回值類型相同的不同函數(shù)指向函數(shù)的指針變量定義形式:數(shù)據(jù)類型(*指針變量名)();

如int(*p)();函數(shù)調(diào)用形式:c=max(a,b);c=(*p)(a,b);*p代替函數(shù)名對(duì)函數(shù)指針變量pn,p++,p--無意義,函數(shù)指針只能指向函數(shù)入口處,而不能指向函數(shù)中間的某一條指令。()不能省int(*p)()與int*p()不同5

指針與函數(shù)函數(shù)指針:每一個(gè)函數(shù)都占有一段內(nèi)存單元,一個(gè)函數(shù)在編譯時(shí)被分配給一個(gè)入口地址,稱為函數(shù)的指針。用函數(shù)名表示??梢杂靡粋€(gè)指針變量指向函數(shù),然后通過指針變量調(diào)用該函數(shù)。max…...指令1指令2p例用函數(shù)指針變量調(diào)用函數(shù),比較兩個(gè)數(shù)大小intmax(intx,inty);voidmain(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("a=%d,b=%d,max=%d\n",a,b,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}intmax(intx,inty);voidmain(){int(*p)(),a,b,c;

p=max;scanf("%d,%d",&a,&b);c=(*p)(a,b);printf("a=%d,b=%d,max=%d\n",a,b,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}用函數(shù)指針變量作函數(shù)參數(shù)例用函數(shù)指針變量作參數(shù),求最大值、最小值和兩數(shù)之和intmax(intx,inty);intmin(intx,inty);intadd(intx,inty);voidprocess(intx,inty,int(*fun)());voidmain(){inta,b;scanf("%d,%d",&a,&b);process(a,b,max);process(a,b,min);process(a,b,add);}voidprocess(intx,inty,int(*fun)()){intresult;result=(*fun)(x,y);printf("%d\n",result);}intmax(intx,inty){printf("max=");return(x>y?x:y);}intmin(intx,inty){printf("min=");return(x<y?x:y);}intadd(intx,inty){printf("sum=");return(x+y);}

7

指針數(shù)組和多級(jí)指針用于處理二維數(shù)組或多個(gè)字符串指針數(shù)組定義:數(shù)組中的元素為指針變量定義形式:[存儲(chǔ)類型]

數(shù)據(jù)類型*數(shù)組名[數(shù)組長度];例int*p[4];指針?biāo)赶蜃兞康臄?shù)據(jù)類型指針本身的存儲(chǔ)類型區(qū)分int*p[4]與int(*p)[4]指針數(shù)組賦值與初始化賦值:voidmain(){intb[2][3],*pb[2];

pb[0]=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論