




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1
十一、程序動態(tài)存儲結(jié)構(gòu)
十二、指針的類型轉(zhuǎn)換和匹配關(guān)系
十三、下標(biāo)表達(dá)式與訪問指針尋址計(jì)算第6章指針與數(shù)組2十一、程序動態(tài)存儲結(jié)構(gòu)系統(tǒng)將內(nèi)存數(shù)據(jù)分為三個段即數(shù)據(jù)段、代碼段和堆棧段。編譯程序?qū)υ闯绦蜻M(jìn)行編譯時,將函數(shù)中的執(zhí)行語句部分編譯成指令代碼放置在代碼區(qū),將靜態(tài)變量、全局變量與字符串常數(shù)存放在全局?jǐn)?shù)據(jù)區(qū),函數(shù)的形式參數(shù)放置在臨時開辟的稱之為先進(jìn)后出的堆棧區(qū),堆棧區(qū)內(nèi)尚包含函數(shù)定義部分中內(nèi)部引入的局部變量或局部數(shù)組。 另外系統(tǒng)提供一些函數(shù)進(jìn)行內(nèi)存的動態(tài)控制,這一片可以由用戶控制的動態(tài)區(qū)域稱為堆結(jié)構(gòu)或堆區(qū),這一可由用戶動態(tài)控制的區(qū)域?qū)嶋H上是隸屬于數(shù)據(jù)段的。剩下的存儲單元為自由內(nèi)存空間。31.C++中new運(yùn)算符和delete運(yùn)算符
C++提供的關(guān)鍵字new是專門用于建立動態(tài)內(nèi)存分配的。
new運(yùn)算符試圖動態(tài)地根據(jù)其后的類型名分配堆內(nèi)存空間,也即在堆空間定義變量或數(shù)組。
new運(yùn)算符不能用于分配一個函數(shù),但可以用于分配一個函數(shù)指針。
new運(yùn)算符定義堆中變量或?qū)ο蟮母袷綖椋?/p>
newtype(initialList)new類名(初始化表)表達(dá)式的結(jié)果是type*類型的地址。下面的幾個語句:
intx;int*p=&x;*p=5;4
對變量x進(jìn)行了間接賦值,上面的指針變量p也可以指向堆空間:
p=newint(5);p=newint;*p=5; 值得注意變量x的地址在變量x的生存期是不變的,new運(yùn)算符分配的地址在其生存期也具有類似的性質(zhì),不同的是該存儲空間可以由用戶通過delete運(yùn)算符釋放。
new運(yùn)算符構(gòu)成的表達(dá)式建立或定義動態(tài)一維數(shù)組的語法格式為:
newtype[dynSize]new類名[動態(tài)數(shù)組大小]表達(dá)式的結(jié)果是type*類型的地址。5
系統(tǒng)在堆區(qū)中開辟了一塊大小為dynSize*sizeof(type)的空間,表達(dá)式的結(jié)果就指向這塊存儲空間的開始位置,因此這一地址具有數(shù)組名一樣的性質(zhì)。當(dāng)new運(yùn)算符建立動態(tài)數(shù)組時,不同時指定數(shù)組元素的初值。這個語法格式適用于一維數(shù)組的動態(tài)確定,動態(tài)數(shù)組大小dynSize初始化的位置是靈活的,可以在運(yùn)行時實(shí)時地輸入,但必須在new函數(shù)的調(diào)用點(diǎn)之前確定。6
當(dāng)不能成功地分配所需要的內(nèi)存時,new返回0。判斷new的返回值是否為0,可以得知系統(tǒng)中有無足夠的空閑內(nèi)存供程序使用。例如:
int*p=newint[10000];
if(p==0)cout<<”runoutofmemory”<<endl;值為零的指針稱為空指針,它表示指針的一種狀態(tài)。如下語句定義了一個固定指針hArray,hArray像一維數(shù)組名一樣不作為左值,hArray指向堆空間中的某個存儲位置:
long*consthArray=newlong[100];7new運(yùn)算符表達(dá)式分配或定義動態(tài)二維數(shù)組的格式為:
newdouble[dynSize][maxn]//new類名[動態(tài)數(shù)組大小][固定數(shù)組大小]表達(dá)式的結(jié)果為double(*)[maxn]型的地址,因此可以用如下語句進(jìn)行初始化:
double(*p)[maxn]=newdouble[dynSize][maxn];也可以先定義數(shù)組指針然后再調(diào)用new運(yùn)算符:
double(*p)[maxn];;...;p=newdouble[dynSize][maxn];8
類似地new運(yùn)算符分配或定義動態(tài)三維維數(shù)組的格式為:
newint[dynSize][maxm][maxn]//new類名[動態(tài)維數(shù)][固定維數(shù)m][固定維數(shù)n]表達(dá)式的結(jié)果為int(*)[maxm][maxn]型的地址,因此可以用如下語句進(jìn)行初始化:
int(*p)[maxm][maxn]=newint[dynSize][maxm][maxn];上面的數(shù)組維數(shù)只有dynSize是可以動態(tài)輸入的正數(shù)表達(dá)式。其余的必須是編譯期間就確定的正整型常數(shù)表達(dá)式。9delete運(yùn)算符釋放由new運(yùn)算符創(chuàng)建的對象內(nèi)存。
delete運(yùn)算符表達(dá)式的結(jié)果為void類型的函數(shù)返回,因此僅單獨(dú)調(diào)用。
delete的操作數(shù)必須是由new運(yùn)算符返回的地址。
delete運(yùn)算符表達(dá)式的語法格式為:
delete指針表達(dá)式;deletepointer;或: delete[]指針表達(dá)式;delete[]pointer;10delete運(yùn)算符刪除后的堆內(nèi)存空間是未定義的,在刪除堆空間后間接訪問這個指針則會產(chǎn)生意料不到的結(jié)果。其中deletepointer形式的運(yùn)算符與newtype匹配,即用于釋放單個對象指針。而delete[]pointer形式的運(yùn)算符與newtype[size]匹配,即用于釋放動態(tài)數(shù)組。 對不是用new分配的對象指針使用delete會產(chǎn)生意料不到的結(jié)果。11十一、程序動態(tài)存儲結(jié)構(gòu)也可以當(dāng)作多維數(shù)組使用。這個void*型的首地址須強(qiáng)制轉(zhuǎn)換為確定類型的指針,也就是明確內(nèi)存空間的具體訪問規(guī)則。如果系統(tǒng)沒有足夠的多余內(nèi)存,malloc函數(shù)返回NULL即0。12例如:
double*p=(double*)malloc(24);//相當(dāng)于p=(double*)malloc(sizeof(double[3]));
long(*q)[3]=(long(*)[3])malloc(24);//或q=(long(*)[3])malloc(sizeof(long[2][3]));
表示兩個24個字節(jié)的堆空間分別委托一級指針p和數(shù)組指針q管理,相當(dāng)于p管理double型的一維數(shù)組p[3],q管理long型的二維數(shù)組q[2][3]。系統(tǒng)并不自動釋放用戶申請 malloc函數(shù)分配的堆空間,良好的編程習(xí)慣是及時地歸還系統(tǒng)資源,malloc函數(shù)分配的空間應(yīng)由free函數(shù)來清除。13free函數(shù)的原型為:voidfree(void*ptr);ptr匹配malloc函數(shù)分配的內(nèi)存塊地址,例如:free(p),free(q);
不要將其它的指針值作為free的實(shí)參,以免引起不可預(yù)料的錯誤。
new和delete運(yùn)算符同malloc函數(shù)和free函數(shù)的工作原理是一致的,本質(zhì)上new和delete運(yùn)算符是malloc和free等內(nèi)存控制函數(shù)的某種映射。在新開發(fā)軟件的時候優(yōu)先采用new與delete運(yùn)算符。new運(yùn)算函數(shù)的返回類型已經(jīng)參照malloc內(nèi)在機(jī)制進(jìn)行了嚴(yán)格的界定,因此無需提供顯示類型轉(zhuǎn)換,但此時接受指針應(yīng)與返回類型嚴(yán)格匹配才行。malloc函數(shù)則要求提供類型轉(zhuǎn)換,以便將泛泛的一塊內(nèi)存空間用于具體類型的數(shù)據(jù)運(yùn)算。14[例]
動態(tài)申請一個一維數(shù)組
#include<stdio.h> #include<malloc.h>voidmain(void){intm;scanf("%d",&m);//數(shù)組的維數(shù)m動態(tài)實(shí)時輸入
int*a,k;if(m%2)a=newint[m];//相當(dāng)于在堆空間定義inta[m]; elsea=(int*)malloc(m*sizeof(int));//與上面分支new等價的malloc版本。
for(k=0;k<m;k++)a[k]=k;//在a指向堆空間時不要改動a的值
int*p=a;//設(shè)置另一個指針p遍歷訪問堆空間15for(k=0;k<m;k++,p++)printf("a[%d]=%d",k,*p);if(m%2)delete[]a;//delete[]a匹配a=newint[m] elsefree(a);//free(a)匹配a=(int*)malloc(m*sizeof(int))}//動態(tài)運(yùn)行結(jié)果為:4
a[0]=0a[1]=1a[2]=2a[3]=3
定義語句{inta[4];}定義一個4個元素的數(shù)組,這個數(shù)組名a具有int*const類型屬性。不妨認(rèn)為語句
{int*a=newint[m];}定義一個m個元素的數(shù)組,但m是可以動態(tài)改變的整型變量。該數(shù)組通過int*型的指針a管理,同時指望delete運(yùn)算符收回相應(yīng)的內(nèi)存空間。16[例]
申請一個二維數(shù)組,第一個下標(biāo)是可變的
#include<stdio.h>#include<malloc.h>voidmain(void){constintN=4;intm,k,j;scanf("%d",&m);int(*d)[N];if(m%2)d=newint[m][N];elsed=(int(*)[N])malloc(m*N*sizeof(int));17for(k=0;k<m;k++)//在d指向堆空間時不要改動d的值for(j=0;j<N;j++)d[k][j]=k*N+j;int(*q)[N]=d;for(k=0;k<m;k++,q++){int*p=*q;for(j=0;j<N;j++)printf("d[%d][%d]=%d",k,j,p[j]);printf("\n");}if(m%2)delete[]d;elsefree(d);}18
定義語句{intd[2][4];}定義一個2行4列的二維數(shù)組,這個數(shù)組名d具有int(*)[4]類型屬性。不妨認(rèn)為語句
{(int(*d)[N]=(int(*)[N])malloc(m*N*sizeof(int));}定義一個m行N列的二維數(shù)組d[m][N],但m是可以動態(tài)改變的整型變量。該數(shù)組通過int(*)[N]類型屬性的指針d管理,同時指望free函數(shù)收回相應(yīng)的內(nèi)存空間二維動態(tài)數(shù)組由一維動態(tài)指針數(shù)組構(gòu)成,該指針數(shù)組的每一個元素分別指向一維動態(tài)數(shù)組。二維動態(tài)可調(diào)數(shù)組是高頻采用的編程技術(shù)。19
下面的程序建立二級指針,該二級指針與二維動態(tài)數(shù)組相聯(lián)系,指向堆空間。[例]
動態(tài)的二維數(shù)組pp[M][N]分配,維數(shù)M,N都可實(shí)時輸入
typedeflongtype;#include<iostream.h>#include<malloc.h>#include<process.h>voidmain(void){type**pp;cout<<"inputnumberM:"; intM=2,N=6;cin>>M;pp=(type**)malloc(M*sizeof(type*));if(pp==NULL)exit(1);cout<<"inputnumberN:"; cin>>N;20intj;for(j=0;j<M;j++){pp[j]=(type*)malloc(N*sizeof(type));if(pp[j]==NULL)exit(1);}intk;for(k=0;k<M;k++)for(j=0;j<N;j++)pp[k][j]=k*N+j+1;for(k=0;k<M;k++){cout<<endl;for(j=0;j<N;j++)cout<<"pp["<<k<<"]["<<j<<"]="<<pp[k][j]} 21for(j=0;j<M;j++)if(pp[j]!=NULL)free(pp[j]);if(pp!=NULL)free(pp);}//運(yùn)行程序輸出結(jié)果為inputnumberM:2
inputnumberN:6
pp[0][0]=1pp[0][1]=2pp[0][2]=3pp[0][3]=4pp[0][4]=5pp[0][5]=6pp[1][0]=7pp[1][1]=8pp[1][2]=9pp[1][3]=10pp[1][4]=11pp[1][5]=1222十二、指針的類型轉(zhuǎn)換和匹配關(guān)系
1.指針類型轉(zhuǎn)換轉(zhuǎn)換為一級指針和指向二維數(shù)組指針的強(qiáng)制類型轉(zhuǎn)換的語法格式為:
(type*)(p)(類型名*)指針表達(dá)式
(T(*)[c])p(類型(*)[c])(指針表達(dá)式)
其中type,T可以是內(nèi)置數(shù)據(jù)類型,可以是結(jié)構(gòu)名,類類型名,聯(lián)合名,c是靜定的整數(shù)。指針強(qiáng)制類型轉(zhuǎn)換的作用是將指針表達(dá)式的類型轉(zhuǎn)換為左邊圓括號界定的指針類型。23
指針的類型轉(zhuǎn)換是復(fù)雜的。概括地說遵循下面的規(guī)則:
a.
指針的類型轉(zhuǎn)換就是把源指針的值復(fù)制給目標(biāo)指針,即表達(dá)式(type*)(p)或(T(*)[c])p與p具有相同的地址值,不同的類型屬性。
b.目標(biāo)指針維持自身的性質(zhì)。例如:如果p是T*型的一級指針,則*p是T型的間接變量,則*((type*)(p))是type型的左值。p的步長增量為sizeof(T),(type*)p的步長增量為sizeof(type);而*(T(*)[c])p是T*型的右值,(T(*)[c])p的步長增量為c*sizeof(T)。
c.整型數(shù)據(jù)和浮點(diǎn)數(shù)據(jù)內(nèi)存位的解釋不同,兩種指針之間不宜類型轉(zhuǎn)換。24
d.指針的類型轉(zhuǎn)換時注意內(nèi)存的空間映像,保證目標(biāo)指針在合適的存儲空間移動。轉(zhuǎn)換的結(jié)果一般作為右值,除非將T*型的左值指針p轉(zhuǎn)換為自身類型,如[(T*)p+=n;]。
[例]char*p=(char*)a表達(dá)式將long*型地址映射給char*型指針
#include<stdio.h> voidmain(){ longa[2]={0x61626364,0x65666768};char*p=(char*)a; for(intk=0;k<8;k++,p++)printf("%c-%x",*p,*p); }//輸出:d-64c-63b-62a-61h-68g-67f-66e-6525
根據(jù)多維數(shù)組在內(nèi)存空間連續(xù)存放的性質(zhì),可將多維數(shù)組名映射到一級指針。[例]一級指針遍歷三維數(shù)組
#include<stdio.h> voidmain(){constintL=2,M=3,N=2;ints[L][M][N]={1,2,3,4,5,6,7,8,9,10,11,12};intb[L*M*N];int*p=(int*)s;int*q=b;intk;for(k=0;k<L*M*N;k++)*q++=*p++;q-=L*M*N;for(k=0;k<L*M*N;k++,q++) printf("%d,%d*",*q,b[k]);}//輸出結(jié)果:1,1*2,2*3,3*4,4*5,5*6,6*7,7*8,8*9,9*10,10*11,11*12,12*26[例]一維內(nèi)存空間張成多維數(shù)組#include<stdio.h>voidmain(){constintL=2,M=3,N=2;inti=0,j=0,k=0; intb[L*M*N]={1,2,3,4,5,6,7,8,9,10,11,12};int(*s)[M][N]=(int(*)[M][N])b;for(i=0;i<L;i++)for(j=0;j<M;j++)for(k=0;k<N;k++)printf("%d",s[i][j][k]);int(*d)[L*N]=(int(*)[4])b;for(j=0;j<M;j++)for(k=0;k<L*N;k++)printf("%d",d[j][k]);}//輸出結(jié)果:
12345678910111212345678910111227
一維數(shù)組與多維數(shù)組共同點(diǎn)是相鄰元素之間的地址根據(jù)線性規(guī)律增長。因此可以將一維數(shù)組空間委托數(shù)組指針接管,這一性質(zhì)在newint[N][M]運(yùn)算符或malloc(N)等的函數(shù)調(diào)用中隱含地得到利用。對于一片連續(xù)的內(nèi)存區(qū)域,可以通過一級指針?biāo)饕部梢酝ㄟ^指向多維數(shù)組的指針訪問。即可以將一維數(shù)組強(qiáng)行張成多維數(shù)組,也可以將多維數(shù)組映射為一維數(shù)組。282.
指針的類型匹配關(guān)系對于數(shù)組定義{intd[r][c];},二維數(shù)組名d代表二維數(shù)組首元素的地址,其類型屬性為int(*)[c],該地址可以初始化一個二級指針,但須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。如:
int**pp=(int**)d;
強(qiáng)制映射之后pp[i]的值是不確定的。原因在于:d[i]是int*型的右值地址,d+i非常特殊地等于d[i]的值,為(char*)d+i*c*sizeof(int);pp[i]是int*型的左值指針,pp+I不等于pp[i]的值。
pp+i的值自動計(jì)算為(char*)pp+i*sizeof(int*),而指針pp[i]的值通過賦值得到或關(guān)聯(lián)一個指針數(shù)組名間接獲得。因此不將其它類型指針轉(zhuǎn)換為二級指針。29
正確的操作次序二級指針指向一級指針,一級指針指向變量。
int*型的一級指針p訪問int的數(shù)組,int**型的二級指針pp訪問int*的指針數(shù)組等。例如:
一維數(shù)組a:inta[n];指針數(shù)組pa:int*pa[r];
二維數(shù)組d:intd[r][c];
一級指針p:int*p=a;二級指針pp:int**pp=pa;
數(shù)組指針q:int(*q)[c]=d;
只要被關(guān)聯(lián)數(shù)組元素事先適當(dāng)賦值,在k不越界的前提下pp[k]或p[k]的操作是有根據(jù)的。指針數(shù)組pa和數(shù)組指針q的初始化是不同的,指針數(shù)組pa須要對每個元素賦值,而數(shù)組指針q只需賦值一次。pa[k]是左值,而q[k]是右值。30[例]指針的匹配和轉(zhuǎn)換
#include<stdio.h> voidmain(void){ int i,b[3][2]={1,2,3,4,5,6};int(*q)[3]=(int(*)[3])b;for(i=0;i<2;i++)printf("[%d,%d,%d]\t",q[i][0],q[i][1],q[i][2]); int*pa[]={b[2],b[1],b[0]};int**pp=pa;for(i=0;i<3;i++)printf("[%d,%d]\t",pp[i][0],pp[i][1]); }//輸出[1,2,3][4,5,6][5,6] [3,4][1,2]31十三、下標(biāo)表達(dá)式與訪問指針尋址計(jì)算下標(biāo)表達(dá)式的一般格式為:
ep[en]指針表達(dá)式[整型表達(dá)式]
下標(biāo)表達(dá)式ep[en]等價于(*(ep+en)),反過來(*(ep+en))等價于ep[en]。一般地ep為指針表達(dá)式,en為整型表達(dá)式,ep可以是另一個下標(biāo)表達(dá)式。在多級下標(biāo)表達(dá)式嵌套中必須有且僅允許其中一個表達(dá)式是用于定位地址的指針表達(dá)式。
&ep[en]等價于&(*(ep+en))等價于ep+en,而ep+en的內(nèi)存地址值由關(guān)系式給定:
_ep+en*step32
其中_ep是ep的地址值,step是指針ep的步長增量,如果ep是double*型的指針,則
step=sizeof(double)=8
如果ep是char**型的指針表達(dá)式,則
step=sizeof(char*)
如果ep是long(*)[5]型的指針,則
step=sizeof(long[5])=4*5=20
如果ep是double(*)[5][2]型的指針,則
step=sizeof(double[5][2])=8*5*2=80依此類推。
33
下標(biāo)表達(dá)式ep[en]具有優(yōu)美的可讀性,運(yùn)行效率當(dāng)en不等于0時等價于訪問指針形式(*(ep+en)),優(yōu)先采用下標(biāo)表達(dá)式代替訪問指針形式。實(shí)際上在專業(yè)的程序設(shè)計(jì)中幾乎看不到訪問指針形式(*(ep+en))的蹤影,原因一是訪問指針形式可讀性欠佳類型屬性模糊,二是字符鍵入較難。
ep[0]等價于(*ep)但表達(dá)式ep不等價于*ep。34
對于數(shù)組定義{typea[max1],d[max1][max2],s[max1][max2][max3];}等,其中type表示各種數(shù)據(jù)類型。令n=sizeof(type),一般地,下標(biāo)表達(dá)式的地址映射按照下面的規(guī)律進(jìn)行:對1維數(shù)組a[max1],數(shù)組元素a[k]的地址值是:
_a+k*n
對2維數(shù)組d[max1][max2],數(shù)組元素d[j][k]的地址是: _d+j*max2*n+k*n
35
對3維數(shù)組s[max1][max2][max3],s[i][j][k]的地址是:
_s+(i*max2*max3+j*max3+k)*n
對m維數(shù)組w[max1][max2]...[maxm],數(shù)組元素
w[s1][s2]...[sm]的地址索引值為:
_w+[(s1*max2*max3...maxm)+(s2*max3...maxm)...+sm]*n
其中_a,_d,_s,_w分別是a,d,s,w的地址值,具體地以字節(jié)為單位,d[j]和d+j的地址值都是(char*)d+j*max2*n,s[i]和s+i的地址值都是(char*)s+i*max2*max3*n,s[i][j]的地址值是:
(char*)s+(i*max2+j)*max3*n依此類推,它們都與max1無關(guān)。36d[j],d+j,&d[j][k],s[i][j],s[I]和s+i等是根據(jù)上面的規(guī)則生成的右值地址,編譯器用于尋址計(jì)算,它們不是左值,因而未分配內(nèi)存空間。同樣的一個地址值可以具有不同的類型屬性,可將右值地址賦給同類型的左值指針,以優(yōu)化相同的地址表達(dá)式的重復(fù)的尋址計(jì)算。設(shè)m,r,c是預(yù)先靜定的正數(shù),對于下面的二維數(shù)組d或指向二維數(shù)組的指針d的定義:
intd[r][c];int(*d)[c];37
則d+i是一個int(*)[c]類型的地址,d[i]+j具有類型屬性int*,它們構(gòu)成右值表達(dá)式。d[i][j]是int型的變量。d+i和d[i]具有相同的地址值不同的類型屬性。二維數(shù)組名d具有int(*)[c]的地址屬性,同時擁有數(shù)組的大小信息,其類型屬性抽象為int[r][c],這一性質(zhì)主要用在sizeof(d),可以確定數(shù)組占有的內(nèi)存大小為sizeof(int[r][c]),而左值指針名僅占有sizeof(int*)字節(jié)的內(nèi)存。這是數(shù)組名和同類型指針名的差異所在。38
對于三維數(shù)組s或指向三維數(shù)組的指針s的定義:
ints[m][r][c];int(*s)[r][c]; s+i具有類型屬性int(*)[r][c],s[i]+j具有類型屬性int(*)[c],s[i][j]+k具有類型屬性int*;它們構(gòu)成右值表達(dá)式。s[i][j][k]為int型的變量。其中i,j,k是整型表達(dá)式。
s[i]地位相當(dāng)于二維數(shù)組名d,d[i]和s[i][j]的地位相當(dāng)于一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年元件測試儀項(xiàng)目合作計(jì)劃書
- 2025年機(jī)械量儀表項(xiàng)目建議書
- 2025建筑工程咨詢合同范本
- 2025汽車銷售定金合同
- 2025煤炭采購協(xié)議合同模板示例
- 《2025年探討國際商事合同法中的交錯合同條款研究》
- 2025房屋租賃合同范本模板
- 2025借款合同模板示例
- 2025城市商業(yè)店鋪?zhàn)赓U合同范本
- 2025茶葉代理合同范本模板
- 能源消防安全課件
- 演唱會可行性研究報告
- 2025屆河北省邢臺市名校協(xié)作高三下學(xué)期一模英語試題(含答案)
- T-BSRS 128-2024 核醫(yī)學(xué)放射性廢液快速處理技術(shù)要求
- 2025年鐵路小型養(yǎng)路機(jī)械市場分析現(xiàn)狀
- 2024內(nèi)蒙古能源集團(tuán)校園招聘394人筆試參考題庫附帶答案詳解
- 網(wǎng)絡(luò)安全和保密意識教育
- 《橋梁健康監(jiān)測》課件
- 企業(yè)安全生產(chǎn)“一企一冊”“一崗一冊”制度簡介
- 耳鼻喉科學(xué)第二十三章耳部疾病講解
- 未來學(xué)校建筑的現(xiàn)代設(shè)計(jì)思考與創(chuàng)新
評論
0/150
提交評論