版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1第七章第七章 指針指針7.1 7.1 指針與地址指針與地址7.2 7.2 指針變量的定義與使用指針變量的定義與使用7.3 7.3 指針與數(shù)組指針與數(shù)組. .7.4 7.4 指針數(shù)組指針數(shù)組7.5 7.5 多維數(shù)組作為參數(shù)的通用函數(shù)多維數(shù)組作為參數(shù)的通用函數(shù)7.6 7.6 動態(tài)存儲管理動態(tài)存儲管理7.7 7.7 定義類型定義類型7.8 7.8 指向函數(shù)的指針指向函數(shù)的指針21. 幾個概念幾個概念程序執(zhí)行過程中數(shù)據(jù)存于內(nèi)存程序執(zhí)行過程中數(shù)據(jù)存于內(nèi)存。在可用期間數(shù)據(jù)有確定存儲位置,占據(jù)一些存儲單在可用期間數(shù)據(jù)有確定存儲位置,占據(jù)一些存儲單元。元。內(nèi)存單元的編號:內(nèi)存單元的編號:地址地址機器語言通過
2、地址訪問數(shù)據(jù)。高級語言用變量等作機器語言通過地址訪問數(shù)據(jù)。高級語言用變量等作為存儲單元為存儲單元/地址的抽象。地址的抽象。建立變量就是安排存儲。賦值時存入,用值時從中建立變量就是安排存儲。賦值時存入,用值時從中提取提取7.1 地址與指針地址與指針3指針是一種訪問對象的手段指針是一種訪問對象的手段2.訪問對象訪問對象(變量變量)的方式的方式:n通過變量名通過變量名: int a; a=3;n通過變量的地址通過變量的地址: 地址也被作為地址也被作為數(shù)據(jù),數(shù)據(jù),地址值地址值/指針值指針值。以地址為值的變量稱為以地址為值的變量稱為指針變量指針變量/指針指針(pointer)。int *p,a; p=&
3、amp;a;*p=3;4 指針賦值:將對象的地址存入指針變量。指針賦值:將對象的地址存入指針變量。 間接訪問:通過指針訪問被指對象。間接訪問:通過指針訪問被指對象。指針指針p保存著變量保存著變量x地址,也說地址,也說指針指針p指向指向x。指針變量 p變量 x圖 7.1指針與被指的變量3.指針的主要操作指針的主要操作指針是變量,可賦值,其指向可以改變。指針是變量,可賦值,其指向可以改變。5在在C中使用指針常能寫出中使用指針常能寫出更簡潔有效更簡潔有效的程序。有的程序。有些問題必須用指針處理。些問題必須用指針處理。指針在大型復雜軟件中使用廣泛。指針在大型復雜軟件中使用廣泛。指針使用的水指針使用的水
4、平是評價人的平是評價人的C程序設計能力的重要方面。程序設計能力的重要方面。C指針靈活指針靈活/功能強功能強。掌握有難度,易用錯,應特。掌握有難度,易用錯,應特別注意。應特別注意使用指針的常見錯誤,別注意。應特別注意使用指針的常見錯誤,注意!注意!67.2 指針變量的定義和使用指針變量的定義和使用l指針有類型,通常只能保存特定類型變量的地址;指針有類型,通常只能保存特定類型變量的地址;l定義指針需指明定義指針需指明指向類型指向類型。 定義指向定義指向int的的指針變量指針變量:int *p, *q; 指針變量可以與其他變量一起定義指針變量可以與其他變量一起定義:double *p, n, a10
5、, *q, *p1, m;l指針是指針是變量變量,可賦值取值,有定義域與存在期。,可賦值取值,有定義域與存在期。1.指針變量的定義指針變量的定義:數(shù)據(jù)類型數(shù)據(jù)類型 *指針變量名指針變量名;7取地址運算符取地址運算符& 和間接訪問操作和間接訪問操作 * 一元運算符一元運算符指針變量 p變量 n圖 7.2兩個指針指向同一個變量的情況指針變量 ql取地址運算取地址運算: & 寫在寫在變量名前取變量地址,是對應類型的指針變量名前取變量地址,是對應類型的指針值,可賦給類型合適的指針變量。值,可賦給類型合適的指針變量。 int n,*p,*q,*p1,a10=;n=3;p = &n
6、; q = p; p1 = &a1;2.指針操作指針操作此時此時,p,q指向同一個變量指向同一個變量8l間接運算間接運算 *寫在指針變量前用來取指針所指變量的值寫在指針變量前用來取指針所指變量的值; 這種表達式可以像普通變量一樣使用。這種表達式可以像普通變量一樣使用。 int n=7,*p; p=&n;*p = 17; q=p; /*相當于相當于n=17;*/ m = *p + *q * n; /* 寫寫*p相當于直接寫相當于直接寫n。/* 訪問訪問n三次三次 */+*p; /* 使變量使變量n的值加的值加1,變成,變成18 。*/(*p)+; /* 使變量使變量n的值再加的值
7、再加1,變成,變成19。*/*p += *q + n; /* 變量變量n被賦以新值被賦以新值57 。* /q = &a0;/* 指針指針q指向了數(shù)組指向了數(shù)組a的元素的元素a0 。*/*p+; / /* * 取出變量取出變量n的值的值, ,p指向下一個地址。指向下一個地址。* */ /9觀察執(zhí)行結果:觀察執(zhí)行結果:#includeint main()int *p,n,m,*p1,*p2,n1,m1;p=&n;*p=3;p1=p;p2=p;n=(*p1)+;m=*p2+; n1=*p1;m1=*p2;printf(n=%d m=%dn,n,m);printf(n1=%d m1=%
8、dn,n1,m1);return 0;10假定一個整型數(shù)據(jù)占兩個存儲單元。假定一個整型數(shù)據(jù)占兩個存儲單元。int i,j,k;int *p=&i; (p=2000)p+; (p=2002)p+; (p=2004)p-; (p=2002)指針變量算術運算的過程;指針變量算術運算的過程;p新新 =p原值原值 +n*sizeof(類型)類型)200020022004地址k kj ji ip=&ip=&i不允許直接對指針變量賦常量值。不允許直接對指針變量賦常量值。 如:如:int *point; point=2000; ( )11main() int *p1,*p2,*p,a,
9、b; scanf(“%d,%d”,&a,&b); p1=&a,p2=&b; if(ab) p=p1;p1=p2;p2=p; printf(“a=%d,b=%dn”,a,b); printf(“max=%d,min=%dn”,*p1,*p2);&a7&b8p2p1&b7&a8p2p1abbap分析下面程序的功能分析下面程序的功能交換指針,怎樣交換內(nèi)容?交換指針,怎樣交換內(nèi)容?12#includeint main() int *p1,*p2,t,a,b; scanf(%d,%d,&a,&b); p1=&a;p2
10、=&b; if(ab) t=*p1;*p1=*p2;*p2=t; printf(a=%d,b=%dn,a,b); printf(max=%d,min=%dn,*p1,*p2);&a7&b8p2p1&b8&a7p2p1abbap分析下面程序的功能分析下面程序的功能交換內(nèi)容交換內(nèi)容133.指針作為函數(shù)參數(shù)指針作為函數(shù)參數(shù)指針作為函數(shù)參數(shù)有特殊意義指針作為函數(shù)參數(shù)有特殊意義-修改調(diào)用時環(huán)境的函數(shù)修改調(diào)用時環(huán)境的函數(shù)一般變量(含數(shù)組元素)作為函數(shù)參數(shù)一般變量(含數(shù)組元素)作為函數(shù)參數(shù)數(shù)組名作為函數(shù)參數(shù)數(shù)組名作為函數(shù)參數(shù)指針作為函數(shù)參數(shù)指針作為函數(shù)參數(shù)14void
11、 swap0 (int x, int y) int t = x; x = y; y = t;int main () int a = 5, b = 10; swap0(a, b);是否能完成是否能完成a,b交換?交換?否否例:定義函數(shù)例:定義函數(shù)swap,希望用它交換兩個變量的值。,希望用它交換兩個變量的值。問題:問題:因為要改變兩個變量,無法通過返回值解決。因為要改變兩個變量,無法通過返回值解決。15 用指針可以解決問題用指針可以解決問題 類似于數(shù)組名作參數(shù)類似于數(shù)組名作參數(shù) g 的函數(shù)體 參數(shù) p 指針 指針變量 m 在函數(shù)體里用*p 可以訪問和改變實參變量 m. 圖 7.3 在函數(shù)里通過指
12、針可以訪問外面的變量 把把m的地址的地址(也是值)通過(也是值)通過指針參數(shù)指針參數(shù)p傳給函數(shù)傳給函數(shù)g,函數(shù)內(nèi)對,函數(shù)內(nèi)對p間接訪問就能操作間接訪問就能操作m,包括對,包括對m賦值(改變賦值(改變m)。)。16交換數(shù)據(jù)的函數(shù)交換數(shù)據(jù)的函數(shù)swap可定義為:可定義為:void swap(int *p, int *q) int t = *p; *p = *q; *q = t;交換變量交換變量m和和n的值,調(diào)用形式是:的值,調(diào)用形式是: swap(&m, &n);設有變量定義:設有變量定義:int a10=,k;調(diào)用調(diào)用swap的實例:的實例:swap(&a0,&a
13、5); swap(&a1,&k);17swap參數(shù)類型是參數(shù)類型是(int *) 實參實參必須是必須是合法的整型變量的地址合法的整型變量的地址swap 的函數(shù)體p變量 m圖 7.4函數(shù)調(diào)用 swap(&m, &n)形成的現(xiàn)場變量 nq18利用指針變量作為函數(shù)參數(shù)利用指針變量作為函數(shù)參數(shù)void set3(int *np) *np = 3;int main() int n, m; set3(&n); /* 設置設置n和和m ,&n和和&m為實參為實參 */ set3(&m); printf(%d, %dn, n, m); retur
14、n 0;請回憶請回憶scanf的情況。的情況。scanf(“%d”,&n);n&n進入函數(shù)進入函數(shù)np=&n通過參數(shù)改變調(diào)用環(huán)境的方案通過參數(shù)改變調(diào)用環(huán)境的方案包括三方面:包括三方面:1. 函數(shù)定義中用函數(shù)定義中用指針參數(shù)指針參數(shù); void set3(int * np) 2. 函數(shù)內(nèi)用函數(shù)內(nèi)用間接操作間接操作實際變量;實際變量;*np = 3;3. 調(diào)用時以被操作調(diào)用時以被操作變量的地址變量的地址作為實參。作為實參。 set3(&n); 19int main() int a,b,*point1,*point2; scanf(%d,%d,&a,&
15、b); point1=&a,point2=&b; if(a p2) .當當p3所指的元素在所指的元素在p2所指的元素之后時條件成立所指的元素之后時條件成立(值為(值為1),否則不成立(值為,否則不成立(值為0)。兩個指針不指在同一數(shù)組里時,比)。兩個指針不指在同一數(shù)組里時,比較大小沒有意義。較大小沒有意義。如果兩指針指在同一個數(shù)組里,可以求差,得到它們間的如果兩指針指在同一個數(shù)組里,可以求差,得到它們間的數(shù)組元素個數(shù)(帶符號整數(shù))。數(shù)組元素個數(shù)(帶符號整數(shù))。 n = p3 p2;29兩個兩個同類型指針同類型指針可用可用 = 和和 != 比較相等或不等;比較相等或不等;任何指針
16、都能與任何指針都能與通用指針通用指針比較相等或不等;比較相等或不等;任何指針可與任何指針可與空指針空指針值(值(0或或NULL)比較相等或不等)比較相等或不等兩指針指向兩指針指向同一數(shù)據(jù)同一數(shù)據(jù)元素,或同為元素,或同為空值空值時它們相等時它們相等。1).數(shù)組寫法與指針寫法:指針的兩種用法數(shù)組寫法與指針寫法:指針的兩種用法設設p1=&a0,p3= &a5 p1和和p3相當于數(shù)組名相當于數(shù)組名 可寫:可寫:p13 = 5; 相當于相當于*(p1+3)=5;或;或 a3=5; p32 = 8; 相當于相當于*(p3+2)=8;或;或 a7=8; p13稱為指針的稱為指針的數(shù)組寫法數(shù)組
17、寫法,*(p1+3)稱為稱為指針寫法指針寫法兩類寫法有等價效力,可以自由選用。兩類寫法有等價效力,可以自由選用。int *p1, *p2, *p3, *p4;int a10 = 1,2,3,4,5,6,7,8,9,10; 302).數(shù)組名是數(shù)組首元素的地址數(shù)組名是數(shù)組首元素的地址(值值)n數(shù)組名可以數(shù)組名可以“看作看作”常量指針,可參與一些指針運常量指針,可參與一些指針運算,算,與其他指針比大小,比較相等與不相等。與其他指針比大小,比較相等與不相等。n通過數(shù)組名的元素訪問也可以采用指針寫法。通過數(shù)組名的元素訪問也可以采用指針寫法。 a3 可寫為可寫為 *(a+3)n注意:注意:數(shù)組名不是指針變
18、量數(shù)組名不是指針變量,不能賦值,不能更改。,不能賦值,不能更改。 若若a為數(shù)組,為數(shù)組,下面操作都是錯誤的下面操作都是錯誤的:a+;a += 3;a = p;313).指針運算原理指針運算原理一個指針指向某數(shù)組里的元素時,為什么能算出下一元素一個指針指向某數(shù)組里的元素時,為什么能算出下一元素位置?(這是指針運算的基礎)位置?(這是指針運算的基礎)指針有指針有指向類型指向類型,p指向數(shù)組指向數(shù)組a時,由于時,由于p的指向類型與的指向類型與a的的元素類型一致,數(shù)據(jù)對象的大小可以確定。元素類型一致,數(shù)據(jù)對象的大小可以確定。p+1的值可根據(jù)的值可根據(jù)p的值和數(shù)組元素大小算出的值和數(shù)組元素大小算出。由一
19、個數(shù)組元。由一個數(shù)組元素位置可以算出下一元素位置,或幾個元素之后的元素位素位置可以算出下一元素位置,或幾個元素之后的元素位置。指針運算的基礎。置。指針運算的基礎。 通用指針即使指到數(shù)組里,因沒有確定指向類型,因此不能做通用指針即使指到數(shù)組里,因沒有確定指向類型,因此不能做一般指針計算,只能做指針比較。一般指針計算,只能做指針比較。324).4).基于指針的數(shù)組程序設計基于指針的數(shù)組程序設計指針運算是處理數(shù)組元素的另一方式。設有指針運算是處理數(shù)組元素的另一方式。設有int數(shù)組數(shù)組a和指和指針針p1,p2,下面代碼都,下面代碼都打印打印a的元素:的元素: for (p1 = a, p2 = a+1
20、0; p1 p2; +p1) printf(%dn, *p1);for (p1 = a; p1 a+10; +p1) printf(%dn, *p1);for (p1 = p2 = a; p1 - p2 10; +p1) printf(%dn, *p1);for (p1 = a; p1 - a 10; +p1) printf(%dn, *p1);int *p1, *p2, *p3, *p4;int a10 = 1,2,3,4,5,6,7,8,9,10; 335).5).數(shù)組參數(shù)的意義數(shù)組參數(shù)的意義C C規(guī)定,數(shù)組參數(shù)規(guī)定,數(shù)組參數(shù)就是就是相應的指針參數(shù):相應的指針參數(shù):int f(int n,
21、 int d) . .int f(int n, int *d) . . 數(shù)組參數(shù)就是利用指針實現(xiàn)的!數(shù)組參數(shù)就是利用指針實現(xiàn)的!這也使采用數(shù)組參數(shù)的函數(shù)能修改實參數(shù)組。這也使采用數(shù)組參數(shù)的函數(shù)能修改實參數(shù)組。函數(shù)里也可用指針方式做元素訪問。函數(shù)里也可用指針方式做元素訪問。int funsum (int n, int a) int i, m = 0; for (i = 0; i n; +i) m += *(a+i); return m;m+=ai;意義相同意義相同346).使用數(shù)組的一段元素使用數(shù)組的一段元素以數(shù)組為參數(shù)的函數(shù)可處理一段元素。求元素和:以數(shù)組為參數(shù)的函數(shù)可處理一段元素。求元素和:
22、double sum(int n, double a);設有雙精度數(shù)組設有雙精度數(shù)組b,40個元素已有值:個元素已有值:用用sum可求可求b所有元素之和所有元素之和/前一段元素之和:前一段元素之和:x = sum(40, b);y = sum(20, b);sum不知道不知道b的大小,它由參數(shù)得到數(shù)組首元素地址,從這的大小,它由參數(shù)得到數(shù)組首元素地址,從這里開始求連續(xù)里開始求連續(xù)40或或20個元素的和。個元素的和。也可用也可用sum求求b中中下標下標12到到24的一段元素之和。的一段元素之和。 z = sum(13, b+12);35#includeenumN=10;int funsum (i
23、nt n, int a) int i, m = 0; for (i = 0; i n; +i) m += *(a+i); return m;int main() int aN,i,sum; for(i=0;iN;i+) scanf(%d, &ai); sum= funsum(N,a); printf(%dn, sum); return 0;a+i36#includeenumN=10;int funsum (int n, int a) int i, m = 0; for (i = 0; i n; +i) m += *(a+i); return m;int main() int aN,*p
24、,sum; for(p=a;p-aN;p+) scanf(%d, p); sum= funsum(N,a); printf(%dn, sum); return 0;37例輸入例輸入a a、b b、c c三個整數(shù),按大小順序輸出三個整數(shù),按大小順序輸出。main() int a,b,c,*p1,*p2,*p3; scanf(“%d,%d,%d”,&a,&b,&c); p1=&a,p2=&b,p3=&c; exchange(p1,p2,p3); printf(“%d,%d,%dn”,a,b,c);exchange(int *q1,int *q2,in
25、t *q3) if(*q1*q2) swap(q1,q2); if(*q1*q3) swap(q1,q3); if(*q2*q3) swap(q2,q3);swap(int *a,int *b) int t; t=*a,*a=*b,*b=t; 38例輸出數(shù)組的全部元素。例輸出數(shù)組的全部元素。方法一:下標法方法一:下標法int main() int a10; int i; for(i=0;i10;i+) scanf(“%d”,&ai); printf(“n”); for(i=0;i10;i+) printf(“%d,”,ai);return 0;方法二:地址法方法二:地址法int mai
26、n() int a10; int i; for(i=0;i10;i+) scanf(“%d”,&ai); printf(“n”); for(i=0;i10;i+) printf(“%d,”,*(a+i);return 0;39方法四:指針法方法四:指針法int main() int a10,*p; int i; for(i=0;i10;i+) scanf(%d,&ai); printf(n); p=&a0; for(i=0;i10;i+) printf(%3d,*(p+i); printf(n); return 0;例輸出數(shù)組的全部元素。例輸出數(shù)組的全部元素。方法三:指
27、針法方法三:指針法int main() int a10; int *p,i; for(i=0;i10;i+) scanf(“%d”,&ai); printf(“n”); for(p=a;pa+10;p+) printf(“%d,”,*p); return 0;三種方法的比較:三種方法的比較: 方法方法1與方法與方法2的執(zhí)行效率相的執(zhí)行效率相同,都是先計算數(shù)組元素的同,都是先計算數(shù)組元素的地址,再訪問數(shù)組元素的值,地址,再訪問數(shù)組元素的值,費時。費時。 方法方法3利用指針變量直接訪利用指針變量直接訪問數(shù)組元素的值,不必計算問數(shù)組元素的值,不必計算數(shù)組元素的地址,故執(zhí)行效數(shù)組元素的地址,故
28、執(zhí)行效率高。率高。 下標法直觀,指針法與地址下標法直觀,指針法與地址法不夠直觀。法不夠直觀。40例下面的程序的輸出結果是什么例下面的程序的輸出結果是什么? ?#include int a=2,4,7,8,9;int main() int i,*p=a; for(i=0;i4;i+) ai=*(+p); printf(%dn,a2);return 0; 運行結果為:運行結果為:8 8411.1.指針變量可以實現(xiàn)自身值的改變:如:指針變量可以實現(xiàn)自身值的改變:如:p+;p+;但數(shù)組名則不能進行改變:但數(shù)組名則不能進行改變:a+a+是錯誤的用法是錯誤的用法。2.2.應注意指針變量的當前值。應注意指針
29、變量的當前值。3.3.注意以下的指針運算:注意以下的指針運算:若:若:intint a10, a10,* *p=a;p=a;則:則:p+p+或或+p +p 等價于等價于 &a1&a1 * *p+ p+ 等價于等價于 * *(p+)(p+) 但但 * *(p+)(p+)與與* *(+p)(+p)卻不同卻不同 (* *p p)+等價于等價于 a0+a0+要點:要點:42例下面程序的錯誤是什么例下面程序的錯誤是什么? ?int main() int a10; int *p,i; p=a; for(i=0;i10;i+) scanf(“%d”,p+); printf(“n”); for
30、(i=0;i10;i+,p+) printf(“%d,”,*p); return 0;43例例1,用指針方式實現(xiàn)字符串長度函數(shù)。,用指針方式實現(xiàn)字符串長度函數(shù)。一種方式:一種方式:int strLength (const char *s) int n = 0; while (*s != 0) s+; n+; return n; 另一實現(xiàn):另一實現(xiàn):int strLength (const char *s) char *p = s; while (*p != 0) p+; return p - s;參數(shù)類型參數(shù)類型(char*),實參應是字符串或存字符串的數(shù)組實參應是字符串或存字符串的數(shù)組4.指
31、針與數(shù)組操作函數(shù)實例指針與數(shù)組操作函數(shù)實例指針使用非常靈活指針使用非常靈活44void strCopy(char *s, const char *t) while (*s = *t) != 0) s+; t+; 把指針更新操作也寫在循環(huán)測試條件里,把指針更新操作也寫在循環(huán)測試條件里,void strCopy (char *s, const char *t) while (*s+ = *t+) ; / 空語句空語句賦值表達式有值,賦值表達式有值,0就是就是0,可簡化:,可簡化:void strCopy(char *s, const char *t) while(*s = *t) s+; t+;
32、例例2,用指針實現(xiàn)字符串復制函數(shù)。,用指針實現(xiàn)字符串復制函數(shù)。45例例3 3,利用指針,輸出,利用指針,輸出int數(shù)組里一段元素數(shù)組里一段元素:void prt_seq(int *begin, int *end) for (; begin != end; +begin) printf(%dn, *begin); prt_seq(a, a+10);prt_seq(a+5, a+10);prt_seq(a, a+3);prt_seq(a+2, a+6);prt_seq(a+4, a+4);prt_seq(a+10, a+10);最后兩個調(diào)用對應空序列。最后兩個調(diào)用對應空序列。46“設置設置”函數(shù):函數(shù):void set_seq(int *b, int *e, int v) for (; b != e; +b) *b = v; 把序列中每個元素都用其平
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美甲店會員積分體系設計與運營合同4篇
- 2024年度青海省公共營養(yǎng)師之四級營養(yǎng)師強化訓練試卷A卷附答案
- 2024年度青海省公共營養(yǎng)師之二級營養(yǎng)師押題練習試題A卷含答案
- 2024年度青海省公共營養(yǎng)師之三級營養(yǎng)師考前自測題及答案
- 二零二五年度成都企業(yè)股權變更一站式代辦合同4篇
- 2025年環(huán)保設備租賃銷售返點合同范文3篇
- 2025年度炊事員健康體檢與職業(yè)安全保障合同4篇
- 2025年度電商直播帶貨培訓與運營指導合同4篇
- 二零二五年度二零二五測繪數(shù)據(jù)采集與管理合同3篇
- 2025年度房地產(chǎn)項目合作出資轉(zhuǎn)讓合同參考4篇
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場發(fā)展態(tài)勢及前景戰(zhàn)略研判報告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點提升(共500題)附帶答案詳解
- 康復醫(yī)學科患者隱私保護制度
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學真題試卷(含答案)
- 高中學校開學典禮方案
- 內(nèi)審檢查表完整版本
- 3級人工智能訓練師(高級)國家職業(yè)技能鑒定考試題及答案
評論
0/150
提交評論