《指针及其应用》PPT课件.ppt

上传人:max****ui 文档编号:16212750 上传时间:2020-09-23 格式:PPT 页数:74 大小:624KB
收藏 版权申诉 举报 下载
《指针及其应用》PPT课件.ppt_第1页
第1页 / 共74页
《指针及其应用》PPT课件.ppt_第2页
第2页 / 共74页
《指针及其应用》PPT课件.ppt_第3页
第3页 / 共74页
资源描述:

《《指针及其应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《指针及其应用》PPT课件.ppt(74页珍藏版)》请在装配图网上搜索。

1、第8章 指针及其应用,第8章指针及其应用,学习目标 掌握指针的概念及基本操作,指针在数组和函数中的应用。 学习内容 指针、指针变量的概念,指针变量定义及使用,指针与一维数组,指针与二维数组,指针与字符串,指针与函数。,下一页,返 回,第8章 指针及其应用,8.1 指针的基本用法 8.2 指针与数组 8.3 指针与函数 8.4 指针应用实例 8.5 本章小结 8.6 实训,上一页,返 回,8.1 指针的基本用法,8.1.1 指针的概念 计算机的内存是以字节为单位的一片连续的存储空间,每个字节都有一个编号,这个编号称为内存单元地址。这就如同旅馆的每个房间都有一个房间号一样,如果没有房间号,旅馆的工

2、作人员就无法进行管理,同样没有字节编号,系统就无法对内存单元进行管理。 若在程序中定义了一个变量,系统就会根据变量的类型为变量在内存中分配若干字节的存储空间,此后这个变量的单元地址也就确定了。有了变量的地址,就可以立即找到该变量所在的存储单元并进行数据的存取操作。这种通过变量地址存取变量值的方式称为变量的直接访问。 程序中通常是通过变量名对变量进行访问,因为变量名是变量的符号地址,它与单元物理地址之间的联系由系统自动建立。 提示:注意区分变量的地址和变量的值这两个概念。,下一页,返 回,8.1 指针的基本用法,存储单元地址惟一地对应着(或指向)存储单元,因此C语言将存储单元地址形象地称为指针。

3、 前面学习的变量,都是用来存放基本类型数据的,如存放整数或实数等,这些变量称为简单变量。在C语言中,还可以定义一种特殊的变量,这种变量专门用来存放另一个变量的地址(即指针),称为指针变量。 如果p是指针变量,而且p中存放着变量a的地址,则称p指向a,常用图8-1所示的形式表示。那么可以通过指针变量p引用它所指向的变量a,这种变量访问方式称为变量的间接访问。 本章主要介绍的内容就是变量的间接访问。,下一页,返 回,上一页,8.1 指针的基本用法,8.1.2 指针变量的定义和使用 1. 指针变量的定义 任何变量在使用前都必须定义,指针变量也一样。指针变量的一般定义形式为: 基类型名 *指针变量名;

4、 例如:int *p1,*p2; 说明: (1)定义了两个指针变量,变量名为p1和p2,这两个变量只能用来存放地址。 (2)*是一个说明符用来说明定义的是指针变量,定义指针变量时必须有。 (3)基类型表示指针变量所指向的变量的类型,也就是说,p1、p2中只能存放整型变量的地址。,下一页,返 回,上一页,8.1 指针的基本用法,2. 指针变量的使用 (1)运算符“ /*指针变量pb指向变量b*/,下一页,返 回,上一页,8.1 指针的基本用法,下面的定义和语句是错误的: float x; int *p; p=*/,下一页,返 回,上一页,8.1 指针的基本用法,j=*p+1; /*取指针变量p所

5、指向的存储单元中的值加1后赋给变量j,j的值为11*/ *p=*p+1; /*取指针变量p所指向的存储单元中的值,加1后再放入p所指向的存储单元中,也就是使变量i的值增1变为11*/ 小测验 int a=11,b=22,*pa,*pb; pa=有什么不同?,下一页,返 回,上一页,8.1 指针的基本用法,【例8-1】通过指针变量访问整型变量。 【程序代码】 #include void main( ) int i,j,*pi; /*定义整型变量i和j,指针变量pi*/ i=10; pi= ,下一页,返 回,上一页,8.1 指针的基本用法,程序运行结果: 【例8-2】从键盘上输入任意三个实数,利用

6、指针的方法将这三个实数按大小进行排序。 【编程思路】 (1)输入3个实数分别放到变量a、b、c中。 (2)3个指针变量p1、p2、p3分别指向变量a、b、c。 (3)比较变量的值,最终使p1指向最大值,p3指向最小值。 (4)按顺序输出p1、p2、p3所指向的变量的值。,下一页,返 回,上一页,8.1 指针的基本用法,【程序代码】 #include void main( ) float a,b,c,*p1,*p2,*p3,*p; printf(请输入3个实数:); scanf(%f,%f,%f, if(ac),下一页,返 回,上一页,上一页,8.1 指针的基本用法,p=p1;p1=p3;p3=

7、p; if(bc) p=p2;p2=p3;p3=p; printf(%.2f,%.2f,%.2fn,*p1,*p2,*p3); 程序运行结果: 该程序执行过程中,变量a、b、c的值始终未变,只是使指针p1最终指向值最大的变量,使指针p3最终指向值最小的变量。,返 回,8.2 指针与数组,8.2.1 指针与一维数组 1. 指针的移动 当指针变量指向一串连续的存储单元(即数组)时,可以对指针变量加上或减去一个整数来进行指针的移动和定位。例如有如下语句: int a5=10,20,30,40,50,*p,*q; p= 指针变量q指向数组元素a4,下一页,返 回,8.2 指针与数组,q-; 指针变量q

8、指向数组元素a3 p+; 指针变量p和q的指向如图8-2 (b) 所示 现在如果有语句 i=*p;j=*q; 则i中的值为20,j中的值为40。若有语句 k=q-p; 则k中的值为2。表达式pq的值为真,因为当前指针变量p中存的地址值小于指针变量q中存的地址值。 2. 数组元素的地址 C程序中,数组名是数组的首地址,即第1个数组元素的地址,该地址是地址常量,因此不能被修改或重新赋值,例如,对数组名a来说,a+; 或a= 此时指针p指向数组a的第1个元素,如图8-3所示。数组元素地址的几种表示形式见表8-1。,下一页,返 回,上一页,8.2 指针与数组,3. 数组元素的引用 针对数组元素地址的不

9、同表示形式,数组元素的引用形式也有多种,见表8-2。 下面语句通过数组名逐个输出数组a中各元素的值: for(i=0;i10;i+) printf(%5d,*(a+i); 这里首地址a始终指向数组元素a0,并没有移动,通过变量i值的变化来引用到每个元素。 下面语句通过移动指针来逐个输出数组a中各元素的值: for(p=a;pa+10;p+) printf(%5d,*p);,下一页,返 回,上一页,8.2 指针与数组,此语句在执行过程中,指针p首先指向元素a0,输出操作输出的是第一个元素的值,执行了p+后,指针指向了元素a1,此时再做输出操作,输出的是第二个元素的值,依次下去,指针会逐个指向每个

10、元素,再输出它们的值。当指针p指向最后一个元素后面的存储单元时,循环结束。 【例8-3】有一个数组score ,存放10个学生的成绩,求平均成绩,要求通过指针变量来访问数组元素。 【程序代码】 #include void main( ) ,下一页,返 回,上一页,8.2 指针与数组,float score10,*p,sum=0,ave; printf(请输入10个学生成绩:); for(p=score;pscore+10;p+) scanf(%f,p); for(p=score;pscore+10;p+) sum+=*p; /*取各成绩累加到sum 中*/ ave=sum/10; /*求平均成

11、绩*/ printf(平均成绩%.2fn,ave); 程序运行结果:,下一页,返 回,上一页,8.2 指针与数组,【例8-4】使数组中的元素逆序存放(不借助其它数组),要求用指针的方法处理。 【编程思路】 (1)定义两个指针变量p1、p2,使p1指向第一个元素、p2指向最后一个元素。 (2)将p1、p2所指向的数组元素的值互换,然后使p1指向第二个元素、p2指向倒数第二个元素,再做上面的互换操作,这样重复下去,直到p1指向了p2的后面或p1和p2指向了同一元素为止。 【程序代码】 #include void main( ) ,下一页,返 回,上一页,8.2 指针与数组,int a10,*p1,

12、*p2,temp; printf(请输入10个数:); for(p1=a;p1a+10;p1+) /*输入一个整数,存放在p1所指的存储单元中*/ scanf(%d,p1); for(p1=a,p2=a+9;p1p2;p1+,p2-) /*通过交换首尾对应位置上的值实现逆置*/ temp=*p1; *p1=*p2;*p2=temp; /*两个指针变量所指向的元素的值互换*/ printf(逆序后数组的值: ); for(p1=a;p1a+10;p1+),下一页,返 回,上一页,8.2 指针与数组,printf(%5d,*p1); printf(n); 程序运行结果为:,下一页,返 回,上一页,

13、8.2 指针与数组,8.2.2 指针与二维数组 1. 二维数组元素的地址 例如:int a33; 与一维数组名一样,二维数组名a也是数组的首地址。但是二者不同的是,二维数组名的基类型不是数组元素类型,而是一维数组类型,因此二维数组名a是一个行指针,其指向如图8-4所示。 二维数组a包含三个行元素:a0、a1和a2,而它们又都是一维数组名,因此也是地址常量,但是它们的基类型与数组元素类型一致。 第0行首地址:a0 第1行首地址:a1 第2行首地址:a2,下一页,返 回,上一页,8.2 指针与数组,所以a0+1就是数组元素a01的地址,a1+1是数组元素a11的地址,那么任意的数组元素aij的地址

14、是ai+j。 二维数组元素的地址表示形式较多,每种地址形式都有对应的数组元素引用方法。比如: 数组元素地址: 二维数组在内存中是按行顺序存储的,因此,可以通过对指向数组元素的指针变量进行加减运算来达到引用任意数组元素的目的,引用方法与引用一维数组元素一样。,下一页,返 回,上一页,8.2 指针与数组,【例8-5】用指向数组元素的指针访问数组。 【程序代码】 #include void main( ) int a33=1,2,3,4,5,6,7,8,9; int *p; for(p=a0;pa0+9;p+) /*最后一个元素的地址是a0+8*/ if(p-a0)%3=0) printf(n);

15、/*换行控制*/ printf(%5d,*p);,下一页,返 回,上一页,8.2 指针与数组, printf(n); 程序运行结果: a0是数组的第一个元素的地址,且基类型与指针p的基类型一致都是int型,所以用p=a0使指针p指向数组的第一个元素,这个表达式还可用p= p是一个指针变量,它的基类型是一个包含4个整型元素的一维数组,因此指针变量p可以指向一个有4个元素的一维数组。 【例8-6】利用行指针输出二维数组元素的值。 【程序代码】 #include void main( ) int a33=1,2,3,4,5,6,7,8,9; int (*p)3,j; /*指针变量p为行指针*/,下一

16、页,返 回,上一页,8.2 指针与数组,for(p=a;pa+3;p+) for(j=0;j3;j+) printf(%5d,*(*p+j); printf(n); 程序运行结果为: 在此把数组a看成是一维数组,它的元素有a0、a1、a2。由于指针p与数组名a表示的地址常量的基类型相同,所以可以用p=a,它使指针p指向了数组a的第一个元素a0,这时*p表示是a0的值,即为第0行的首地址,如有*p+1,它表示a01的地址,*(*p+1)表示数组元素a01。p+执行一次,指针p向后移动一行,下一页,返 回,上一页,8.2 指针与数组,4. 指针数组 比如有如下定义: int a34, *p3; 数

17、组p是一个包含3个元素的一维数组,它的每个元素都是基类型为int的指针,所以称数组p为指针数组。pi和ai(0i3)的基类型相同(都为int类型),因此赋值语句pi=ai; 是合法的。比如有以下循环语句: for(i=0;i3;i+) pi=ai; 该语句执行完后,数组p的3个元素p0、p1和p2分别指向数组a每行的开头,如图8-5所示。此时如果有语句printf(%d,%d,*p0,*(p0+1); ,那么输出的是数组元素a00和a01的值。,下一页,返 回,上一页,8.2 指针与数组,8.2.3 指针与字符串 字符数组通常用来存放字符串,指针指向字符数组也就指向了字符串,因此通过指针可以引

18、用它所指向的字符串。 【例8-7】通过指针引用字符串。 【程序代码】 #include void main( ) char str =BeiJing,*p; p=str; /*指针p指针字符串首部*/ printf(%sn,p); /*从字符串首字符开始输出,遇0结束*/,下一页,返 回,上一页,8.2 指针与数组,p+=3; /*移动指针p*/ printf(%sn,p); /*从指针p所指字符开始输出,遇0结束*/ 程序运行结果为: 指针先指向字符串首部,从此位置开始输出,遇到结束符0为止,然后指针向后移动了3个字符,从串中第4个字符开始输出,遇结束符0为止。 【例8-8】利用指针实现两个

19、字符串的连接。 【编程思路】 (1)指针p指向第一个串的末尾(最后一个字符后面),指针q指向第二个串的首部。 (2)将第二个串中字符依次放入第一个串后。,下一页,返 回,上一页,8.2 指针与数组,【程序代码】 #include #include void main( ) char str120,str210,*p,*q; printf(请输入两个字符串:); gets(str1); gets(str2); p=str1+strlen(str1); /*p指向第一个串的末尾*/ q=str2; /*q指向第二个串的首部*/,下一页,返 回,上一页,8.2 指针与数组,while(*q!=0)

20、/*如果第二个串未结束,继续执行*/ *p=*q; p+; /*指针p向后移动*/ q+; /*指针q 向后移动*/ *p=0; /*串末尾加上结束标志*/ printf(连接后新串为:); puts(str1); 程序运行结果为:,返 回,上一页,8.3 指针与函数,8.3.1 变量地址作函数参数 调用函数时,通过函数的参数不仅能够传递普通的值,而且还能传递地址值。当实参为一个地址时,形参必须是一个基类型与它相同的指针变量。 【例8-9】求两数之和。 【程序代码】 #include int add(int *x,int *y) /*形参为指针变量*/ int z; z=*x+*y; retu

21、rn z;,返 回,下一页,8.3 指针与函数, void main( ) int a,b,sum; printf(请输入2个整数:); scanf(%d%d, 程序运行结果:,下一页,返 回,上一页,8.3 指针与函数,程序分析: 调用add()函数时,实参是变量a、b的地址,形参是两个指针变量,只有指针变量才能接收地址值。接收完毕后,形参指针x指向了变量a,形参指针y指向了变量b,实参变量和形参指针间的关系如图8-6所示。这样就可以在函数中通过指针变量访问实参变量单元。 此例中通过传送地址,使形参指针指向了实参变量,这样使得在被调函数中通过形参来改变实参的值成为可能。同时,原来只能通过re

22、turn语句返回一个函数值,利用传地址的形式,可以把两个或两个以上的值从被调函数中返回到调用函数。 【例8-10】调用swap函数,交换主函数中变量x和y中的数据。 【程序代码】 #include ,下一页,返 回,上一页,8.3 指针与函数,void swap(int *a,int *b) int t; t=*a; *a=*b; *b=t; void main( ) int x,y; printf(请输入2个整数:); scanf(%d%d, ,下一页,返 回,上一页,8.3 指针与函数,程序运行结果: 小测验 如果将函数改为如下形式,程序还能实现变量x和y互换吗? void swap(in

23、t *a,int *b) int *t; t=a; a=b; b=t; ,下一页,返 回,上一页,8.3 指针与函数,8.3.2 数组名作函数参数 数组名可以用作函数的形参和实参,例如下面程序片段: 用数组名作实参时,是把数组的首地址传送给形参数组,对应的形参数组接收传过来的是实参数组的首地址,这样形参数组与实参数组共占同一段内存区域。数组元素a0与b0共占一个存储单元,a1与b1共占一个存储单元,。引用形参数组元素的值也就是引用实参数组元素的值,因此形参数组会影响实参数组。,下一页,返 回,上一页,void main( ) int a5; f(a,5); ,void f(int b5,int

24、 n) ,8.3 指针与函数,【例8-11】数组名作函数参数。 【程序代码】 #include void add(int a ,int b ) /*函数定义*/ int i; for(i=0;i3;i+) ai=ai+bi; void main( ) int x3=1,2,3;,下一页,返 回,上一页,8.3 指针与函数,int y3=4,5,6; int i; add(x,y); /*函数调用,实参为数组名*/ for(i=0;i3;i+) printf(%4d,xi); 小测验 写出上面程序的输出结果。 以上将实参数组和形参数组看成是共用存储空间,这样比较形象,读者容易理解。实际上能够接收

25、并存放地址值的只能是指针变量,C编译系统是将形参数组名处理成指针变量。,下一页,返 回,上一页,8.3 指针与函数,假设某函数首部为:int add(int a ,int b ) 在编译时系统会处理为:int fun(int *a,int *b) 调用函数时,指针变量接收从主调函数传递过来的实参数组首地址,这样形参指针指向了实参数组,那么可以通过形参指针去访问实参数组元素。 提示:形参数组如果是一维数组,定义时大小可以不指定;如果是二维数组,第一维的大小可以不指定。 【例8-12】在数组中第k个数前插入一个数x。 【编程思路】 (1)函数需要4个形参,分别接收:实参数组地址、实参数组大小、k、

26、x。,下一页,返 回,上一页,8.3 指针与函数,(2)函数中的操作: 指针指向最后一个元素。 从最后一个元素一直到下标为k-1的元素,依次往后移。 将x赋给下标为k-1的元素。 【程序代码】 #include void fun(int *b,int n,int k,int x) int i; for(i=n-1;i=k-1;i-) /*从最后一个元素到第k个元素,依次往后移*/ *(b+i+1)=*(b+i);,下一页,返 回,上一页,8.3 指针与函数,*(b+k-1)=x; /*将x插入*/ void main( ) int a9=1,2,3,4,5,6,7,8,k,x,i; print

27、f(数组原值:); for(i=0;i8;i+) printf(%6d,ai); printf(n请输入在第几位插入:); scanf(%d,下一页,返 回,上一页,8.3 指针与函数,fun(a,8,k,x); /*函数调用*/ printf(插入%d后数组值:,x); for(i=0;i9;i+) printf(%6d,ai); printf(n); 程序运行结果为:,下一页,返 回,上一页,上一页,8.3 指针与函数,因为指针引用数组元素时,可以写成下标形式,因此程序中的语句: for(i=n-1;i=k-1;i-) *(b+i+1)=*(b+i); *(b+k-1)=x; 可以改写成下

28、面语句形式,这样更清晰、简练。 for(i=n-1;i=k-1;i-) bi+1=bi; bk-1=x;,返 回,8.4 指针应用实例,【例8-14】利用指针实现把数组中的奇数存入另一数组中。 【编程思路】 (1)用两个指针p和q分别指向数组a和b。 (2)利用指针移动逐个取出数组a中的每个元素,如果当前元素的值为奇数,则存入数组b中。 【程序代码】 #include void main( ) int a8,b8,*p,*q,i; printf(请给a数组中输入8个整数: ); for(i=0;i8;i+),下一页,返 回,8.4 指针应用实例,scanf(%d,下一页,返 回,上一页,8.4

29、 指针应用实例,printf(n); 程序运行结果: b数组虽然有个元素,但只有前个元素中有确切的值。 【例8-15】先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 例如:当s中的字符串为:ABCDE时,则t中的字符串应为:ABCDEEDCBA。,下一页,返 回,上一页,8.4 指针应用实例,【编程思路】通过指针先由前往后访问s串,并逐个字符存入t串中;再由后往前访问s串,并逐个字符存入t串中,最后输出t串即可。 #include #include void main( ) char s20,t20,*p,*q; printf(请输入一个字符串:); get

30、s(s); for(p=s,q=t;*p!=0;p+,q+)/*正序存放*/ *q=*p; for(p-;p=s;p-,q+) /*p由后向前访问s串,实现逆序连接*/,下一页,返 回,上一页,8.4 指针应用实例,*q=*p; *q=0; puts(t); 程序运行结果: 【例8-16】编写函数,其功能是对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数。 【编程思路】 (1)定义变量a、b存放两个浮点数,变量sum、sub存放两数的和与差。,下一页,返 回,上一页,8.4 指针应用实例,(2)被调函数fun中,需要两个float类型的形参x、y来接收两个实数,还需要两个指针s、

31、n,一个指向sum,一个指向sub。 (3)函数fun中,计算的两数和放到s所指向的变量sum,两数差放到n所指向的变量sub中。 【程序代码】 #include void fun(float x,float y,float *s,float *n) *s=x+y; /*将和放入s所指向的存储单元*/ *n=x-y; /*将差放入n所指向的存储单元*/ void main( ),下一页,返 回,上一页,8.4 指针应用实例, float a,b,sum,sub; a=10.5; b=20.8; fun(a,b, 程序运行结果:,下一页,返 回,上一页,8.4 指针应用实例,【例8-17】将字符

32、串从第k个字符起,删去m个字符,组成新字符串。 【编程思路】 (1)函数需要3个形参,分别接收串的首地址、k值和m值。 (2)函数中的操作: 指针p指向第k个字符,指针q指向第k+m个字符。 赋值*p=*q。 指针p、q同时向后移,返回(2),直到q指向串结束标志。 【程序代码】 #include void del(char *s,int k,int m) char *p,*q;,下一页,返 回,上一页,8.4 指针应用实例,p=s+k-1; /*p指向第k个字符*/ q=s+k+m-1; /*指针q指向第k+m个字符*/ while(*q!=0) *p+=*q+; /*赋值并且移动指针*/

33、*p=0; void main( ) char str30; int k,m; printf(请输入字符串:); gets(str);,下一页,返 回,上一页,上一页,8.4 指针应用实例,printf(请输入从第几个字符开始删除:); scanf(%d, 程序运行结果:,返 回,8.5 本章小结,1. 每个变量都有地址(即指针),指针变量用于存放其他变量的地址。 2. 指针变量与普通变量一样,要先定义后使用。如有定义语句float *fp;,则fp只能指向float类型的变量。 3. 建立指针的指向关系,可以通过以下语句完成: (1)指针变量= *dp=x-y; ,下一页,返 回,上一页,8

34、.6 实训,void main( ) int a,b,c,d; a=4; b=3; fun(a,b, ,下一页,返 回,上一页,8.6 实训,实训3 【实训内容】数组名作为函数参数。 【实训目的】掌握数组作为函数参数的使用。 【实训题目】编写程序,交换数组a和数组b中的对应元素,要求数组交换功能在函数中实现。主函数已给出,请补充reverse( )函数。 #include void reverse(int x ,int y ,int n) void main( ) int a10,b10,i; printf(请输入10个数给数组a:); for(i=0;i10;i+),下一页,返 回,上一页,

35、8.6 实训,scanf(%d, ,下一页,返 回,上一页,8.6 实训,实训4 【实训内容】字符串与指针。 【实训目的】掌握指针在字符串操作中的应用。 【实训题目】给定程序中函数fun( )的功能是:从字符串s尾部开始,按逆序把在其中出现的每相邻的两个字符,紧随其后重复出现一次,放在一个新串t中,若字符串s中头部有剩余的单个字符也重复,放在t的最后。 例如:当s中的字符串为:ABCDE时, 则t中的字符串应为:EDEDCBCBAA。 请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include ,下一页,返 回,上一页,

36、8.6 实训,#include void fun(char *s, char *t) int i,j,sl; sl=strlen(s); /*found*/ for(i=sl,j=0;i=0;i-=2) tj+=si; if(i-1=0) tj+= si-1; tj+=si;,下一页,返 回,上一页,上一页,8.6 实训,/*found*/ if(i-1=0) ti+=si-1; tj=0; void main( ) char s100, t100; printf(nPlease enter string s:); scanf(%s,s); fun(s,t); printf(The result is: %sn,t); ,返 回,图8-1 p指向a,返 回,图8-2 指针移动示意,返 回,图8-3 指针p指向数组,返 回,表8-1一维数组元素的地址,返 回,提示:对指针变量p更多的是通过p+或p-移动定位。,表8-2 一维数组元素,返 回,图8-4 二维数组地址示意,返 回,图8-5 指针数组指向示意,返 回,图8-6 函数间地址传递,返 回,表8-3 函数间参数传递方式,返 回,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!