![[高等教育]xin7第七章指针.ppt_第1页](http://file.renrendoc.com/FileRoot1/2019-1/2/1b947f9c-dc58-4386-a854-2f4433b2ff68/1b947f9c-dc58-4386-a854-2f4433b2ff681.gif)
![[高等教育]xin7第七章指针.ppt_第2页](http://file.renrendoc.com/FileRoot1/2019-1/2/1b947f9c-dc58-4386-a854-2f4433b2ff68/1b947f9c-dc58-4386-a854-2f4433b2ff682.gif)
![[高等教育]xin7第七章指针.ppt_第3页](http://file.renrendoc.com/FileRoot1/2019-1/2/1b947f9c-dc58-4386-a854-2f4433b2ff68/1b947f9c-dc58-4386-a854-2f4433b2ff683.gif)
![[高等教育]xin7第七章指针.ppt_第4页](http://file.renrendoc.com/FileRoot1/2019-1/2/1b947f9c-dc58-4386-a854-2f4433b2ff68/1b947f9c-dc58-4386-a854-2f4433b2ff684.gif)
![[高等教育]xin7第七章指针.ppt_第5页](http://file.renrendoc.com/FileRoot1/2019-1/2/1b947f9c-dc58-4386-a854-2f4433b2ff68/1b947f9c-dc58-4386-a854-2f4433b2ff685.gif)
已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/5/3,1,第七章 指 针,李 书 涛 ,2019/5/3,2,目 录,1. 指针的基本概念 2. 指针变量和指针运算符 3. 指针和函数参数 4. 指针与数组 5. 指针与函数 6. 本章小结,第七章 指 针,2019/5/3,3,&,变量是存放在内存上的,内存的每一个字节成为一个单元,每个单元有一个编号,这个编号就是地址,内存是按字节排列的连续空间。,定义变量: int k;编译系统根据类型为k分配内存,输入变量的值:scanf(“%d”, &k就代表了变量k在内存中的地址,以往对变量的访问是通过变量名,这种操作称为直接访问: int k; scanf(“%d”,关于地址,1 指针的基本概念,1 指针的基本概念,2019/5/3,4,C 提供了另一种方式,将变量 k的地址存放在另一个变量处(假定为pk),通过访问 pk,就可以间接地访问变量k,这种方式称为间接访问。,变量 int k; 变量 pk 中存放 k 在内存中的地址。,变量pk 是一个指针变量,指向变量k,存放k的地址 ,因此指针就是地址。,间接访问,*,谁的地址?,间接访问的概念,2019/5/3,5,main( ) int a, b, c; a=5; b=10; c=a+b; printf(“%d,%d,%d”,a,b,c); ,main( ) int a, b, c, *pc; a=5; b=10; pc= ,利用变量 c 的变量名直接访问,利用指针变量 *pc 间接访问变量c,比较两个程序,举例分析,2019/5/3,6,指针指向变量-变量的指针(存变量的地址)。,指针指向数组-数组的指针(存数组的起始地址)。,指针指向函数-函数型指针(存放函数的入口地址)。,指针指向指针-指针型指针(存放某指针的地址)。,由指针组成的数组-指针数组。,指针是定位其他数据类型的特殊类型的数据(存放其他数据的地址)。,指针可以指向所有类型的数据,2019/5/3,7,一个指针,指向一个变量,1. 格式:类型 * 标识符;,其中: 指针的类型是指针所指变量的类型。 *为指针说明符,说明后面的标识符为指针变量(也叫间接访问符)。,int a , *pa;,pa= 将变量a的地址赋给指针pa。,*pa=a;通过间接访问符访问变量a。,2. 说明:,(1) 一个指针指向同一种类型的变量。,(2) * 和 & 在C中有两个作用: *: 乘号(双目)和指针说明符(单目)。 &: 取址符(单目)和位操作中的“与”。,2 指针变量和指针运算符,2 指针变量和指针运算符 一 、 指针变量的定义,2019/5/3,8,对变量k的访问就可以有两种方法: 直接访问:通过变量名访问-k,间接访问:通过指针变量名-pk,int k , *pk; pk= 完全等价。,二、指针变量的引用,例如:,2019/5/3,9,三、指针类型的两个运算符,&: 取址运算符 *: 指针间接访问运算符,int a , *pa; pa= *pa就是a。,2019/5/3,10,main( ) int a,b,c; int *p ; (指针说明) a=100; b=200; p= ,main( ) float a,b,c; float *p; a=100.0,b=200.0; p= ,例,int k; int *pk ; 当指针 pk 指向变量 k 时,有: pk= 所以: *(&k) =*pk=k &(*pk)=&k=pk,互逆,四、 指针变量的初始化,1. 指针变量使用前必须有值。,2. 指针变量的初值必须是地址值(不能是整数),3. 方法有两种:,(1) pk = (说明语句,不是赋值语句),地址:数组名, &变量名,*与& 之间是互逆的,4. 可以为指针赋空值(NULL),此时指针不指向任何变量:pk=NULL;,12,1. 程序中一旦进行了变量说明 int a,b,c ; 则机器自动设置a,b,c的存储区域,每个整数两个字节。 2. 当a=100,b=200 时,则分别存在 a,b 的空间内。 3. 为便于了解存储区的位置,用&a表示a的地址,&b表示b的地址, &c表示c的地址。 4. 变量p存放地址, p=&c, 称为指针变量。 5. 指针变量p自身也有地址,用&p表示,用 printf(“%x”,&p)可求得指针自身的存储地址。,说 明,2019/5/3,13,C仅允许指针作三种运算,指针的比较运算(关系) 指针的减法运算 指针与一个整数的加减运算,1. 指针的比较运算,假定两个指针变量 p, q,当它们指向同一个数组时,以下比较运算结果为逻辑值。,pq : p 指针所指元素位于q所指元素之后时为1,pq : p 指针所指元素位于q所指元素之前时为1,p=q:p指针所指元素位于q所指元素之后(或两指针指向同一元素)时为1,int a6,五. 指针的运算,p=p:p指针所指元素位于 q 指针所指元素之前(或两指针指向同一元素)时为 1,p=q: 两指针指向同一元素时为 1,p!=q: 两指针不指向同一元素时为 1,2019/5/3,14,两指针p,q指向同一数组,p-q的结果为p所指元素与q所指元素之间相隔的元素的个数(不是地址值之差,也不是变量值之差)。,3. 指针与整数的加减运算,当一个指针指向一个数组时,指针与一个整数n相加或相减,表示将指针向后或向前移动了n个元素。,2. 指针的减法运算,2019/5/3,15,例题:,1. 若定义char *p=“I am a student”; 则 *(p+7)的值为:,2. 若定义int a4= 0,1,3,5,*p; p= 则+(*p)的值为:,3. 下列程序中,数组a的地址为ffe2,问第二个printf语句执行后的结果为:,main( ) static int a10=1,2,3,4,5,6,7,8,9,0; int *p; p=a; printf(“%x”,p); printf(“%x”,p+9); ,举例分析,s,2,fff4,2019/5/3,16,3 指针和函数参数,3 指针和函数参数,1. 指针变量既可以作为函数的形参,也可以作函数的实参。指针变量作实参时,与普通变量一样,是“值传递”,即将指针变量的值传递给被调用函数的形参,对应的形参必须是一个指针变量。 2. 当指针变量作函数的参数时,被调用的函数不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值。,2019/5/3,17,指针变量作函数参数举例,change(int x, int *pm) x=10; *pm=10; main() int n=200,m=200, *p1; p1= 程序的运行结果: n=200, m=10,2019/5/3,18,主函数内 ,输入两个整数,调用一个功能函数,交换两个整数的大小.,main( ) int a , b; printf(“Enter two numbers : ”); scanf(“%d,%d”, ,swap( a, b );,输入 3,5,输出1:3,5,输出2:5,3,3 ,5,输出3:3,5,形参 x , y 是局部变量, 函数内定义,函数内有效,函数调用结束,值不保留。,普通变量作函数参数,函数调用只能返回一个值,指针作函数参数可返回多个值。,swap(int *p1, int *p2) int pk; pk=*p1; *p1=*p2; *p2=pk; printf(“2: %d,%dn”, *p1, *p2); main( ) int a , b; scanf(“%d,%d”, ,交换,形参为指针,实参为地址,指针变量作函数参数的应用,输入 3,5,输出1:3,5,输出2:5,3,输出3:5,3,2019/5/3,20,1. 功能函数 swap(a,b)的作用是实现两个数的交换,当参数为指针型时,实参,形参都为指针变量。 2. 当函数被调用时,实参传给形参结果为:形参指针p1,实参 指针 此时pk是一个int 变量,不是指针。,题目 分析,指针的值为地址,举例例题分析,2019/5/3,21,一个指针,指向一个数组,* 通过指针引用数组中的任意元素 * 一个指针与一个一维数组的等价性 * 字符指针的特殊使用 * 关于“数组指针”的概念和使用,数组名就是数组的起始地址,int a10,*pa=a; 与 int (*pa)4;,掌 握 要 点,4 指针与数组,4 指针与数组,2019/5/3,22,定义指针,定义数组,int a10,*pa;,指针初始化,pa=,将数组中第一个元素的地址赋给指针变量, 等价于: pa=a;,pa=a;,间接访问: *pa=a0;,可以移动指针使其指向数组中后面的元素。,向后移动i个元素 pa+i 指针指向元素ai。,7.4.1 用指针访问数组元素 一. 用指针引用数组元素,2019/5/3,23,pa+i=&ai (将a i 的地址赋给指针pa),pa+i=a+i=a+i*m (每个元素占字节),m,*(pa+i)=*(a+i)=a i (间接访问),当i的值在下标范围内变化,就可访问数组中所有元素.,下标法: 循环语句,逐一访问 a i 指针法: 移动指针访问 *(pa+i)=ai=*(a+i),访问数组元素,地址值,访问数组元素,pa+i,main( ) static int a = 1,2,3,4,5,6; int i; for(i=0;i6;i+) printf(“%d”,a i ); ,main( ) static int a =1,2,3,4,5,6; int i; for(i=0;i6;i+) printf(“%d”,*(a+i); ,main( ) static int a =1,2,3,4,5,6; int i; int *pa=a; for( i=0;i6;i+) printf(“%d”,*(pa+i); ,ai *(a+i) *(pa+i),下标法,地址法,指针法,举例分析,2019/5/3,25,1. 当指针变量pa的值与地址常量a相同时,如果变量i为一整数,则a i ,*(a+i)和*(pa+i) 三个表达式功能相同,意义相同,程序中可混用。,2. a i ,*(a+i),*(pa+i)遵循统一的地址计算规则,如果数组元素占 m个字节,则第i个元素的地址为: a+i*m 或 pa+i*m,3. 指针变量法和数组下标法均允许对数组元素随机存取.,数组名 地址 指针 地址 数组 指针,等价性,二. 指针与数组的等价性,2019/5/3,26,字符数组在C中可以用字符串常量初始化,可以整串的输入,输出,由于指针与数组的等价性,字符指针也有某些特点.,1. 字符指针定义 Char *pc;,2. 字符指针的赋值: char c; pc=,3. 可以用字符串常量为字符指针初始化 char *pc=“Turbo C”;,注 意,字符数组初始化 char c =“Turbo C”; 是将字符串常量的内容全部赋给数组,字符指针初始化: char *pc=“Turbo C”;,仅将串首地址赋给指针,也可写成: char *pc; pc=“Turbo C”;,!,三. 字符指针,三种表示方法等价:,(1) char *pc;pc=“Book”;,(2) char *pc=“Book”;,(3) char name =“Book”; char *pc=name;,地址=指针,4. 字符数组与字符指针的区别:,(1)字符数组可以写成: char c =“book”; 但不能写成: char c ; c =“book”; 字符指针可以写成:char *pc=“book”; 也可以写成: char *pc; pc=“book”;,字符指针的应用,(2) 当用字符串常量初始化时: 字符数组获得了串中所有的字符(内容)。 字符指针获得了串首的地址(与串内字符无关)。,2019/5/3,28,main() char *a=“Turbo C”; char *p; p=a+4; printf(“%cn”,*a); printf(“%sn”,a); printf(“%cn”,*p); printf(“%x,%x,%x,%xn”,a,p, ,a,p,T的地址,o的地址,5. 字符指针的应用举例,2019/5/3,29,指针数组的定义 指针数组的初始化(用地址) 指针数组的应用 指针数组与二维数组的等价性,由若干个指针变量组成的数组,称为指针数组,掌握 要点,一 、指针数组的定义,格式:类型 *标识符长度;,定义数组,不是定义一个指针。,数组中所有指针的类型(均指向同一类型的变量),数组名,数组中所含指针的个数,int *pa3;,7.4.2 指针数组,2019/5/3,30,定义了静态的二维数组,所有元素有固定的地址 用该二维数组的每一行的 行首地址 为指针数组初始化,行首地址就是该行的名(数组名为起始地址),必须用地址值为指针数组初始化,static int a33=1,2,3,4,5,6,7,8,9; int *pa3=a0,a1,a2;,指针数组*pa3 相当于有三个指针,pa0,pa1,pa2,初始化的结果:,行首地址,行首地址就是该行的名(数组名为起始地址),二 、指针数组的初始化,pa0=,对任意行i,可以有:pai=,相当于一个指针,指向一个一维数组,pa i =,i,分析:pai=ai;等价于: pa=a, pa+j=a+j, *(pa+j)=*(a+j)=aj;,对指针数组中的任意一个pai,移动j个元素,pai+j=ai+j=,第j列,aij,指针与数组的等价性: *(a+i )=*(pa+i )=a i ;,指针数组的特性,*(pa i +j)=*(a i +j )=*(*(a+i )+j ) =a i j ,指针数组与二维数组是等价的,通过指针数组可以引用二维数组中的元素。,2019/5/3,32,main( ) int i,j; static int a33=1,2,3,4,5,6,7,8,9; int *pa3=a0,a1,a2; for(i=0;i3;i+) for(j=0;j3;j+) printf(“%d,%d,%dn”, aij,*(*(a+i)+j),*(pai+j) ); ,三、 指针数组的应用 1. 用指针数组引用二维数组中的元素,zzsz.c 运行结果:,#define SIZE 4 main( ) int i, j, k; static char *strSIZE=“Program”, “ Fortran”, “ C” , “ Basic”; char *temp; for(i=0;i0 ) temp=str j ; str j =str i ; str i =temp; for(i=0;iSIZE;i+) printf(“%sn”,str i ); ,用字符串为字符指针初始化,2. 处理二维字符数组( zzszpx.c ),2019/5/3,34,其中: for(i=0;i0 ) temp=str j ; str j =str i ; str i =temp; 为选择排序。,zzszpx.c 执行结果如下:,Basic C Fortran Program,2019/5/3,35,利用指针*temp,作为指针交换的临时变量, 通过改变指针的指向,改变输出顺序,不真正交换字符串的位置。,可用二维数组处理,操作示意图,2019/5/3,36,main(参数1,参数2) int 参数1; /*命令行字符串的个数*/ char *参数2 ; /*各字符串在内存存放的首地址*/ ,形参值从何而来?由DOS系统执行.EXE的命令行提供。,格式:命令名 参数1 参数2 . 参数n,运行该程序的同时给出实参的值 file1 China Beijing,运行程序的名,3. 指针数组作main函数的形参,2019/5/3,37,int a,*pa,*ppa; pa= *pa 与 a 等价 *ppa与pa等价 *ppa与*pa与a等价,是一个指针,它指向另一个指针。,1. 格式: 类型 *标识符;,2. 说明: 类型为被指针型指针所指的指针所指的变量的类型。,100,a=100,&a,&a,*pa=a,&pa,*ppa=&a,&pa,int,int,int,7.4.3 指针型指针 一 、指针型指针的定义,2019/5/3,38,1. 对数据的多级间接访问,int i, *pi , *ppi ; pi=,(一级间接访问),(二级间接访问),2. 指针型指针(二级指针)与指针数组,二维数组等价性,二、 指针型指针的应用,2019/5/3,39,#define SIZE 4 main( ) static char *p =“program”, “basic”,“fortran”, “c”; char *pp; int i; for (i=0;iSIZE;i+) pp=p+i; printf(“%sn”,*pp); ,多级指针,多 级 指 针 初 始 化,用指针数组的数组名初始化,举例分析,zzxzz.c运行结果,2019/5/3,40,一个指针,指向一个函数,定义了函数之后,系统为该函数分配一段存储空间,其中函数的起始地址,称为该函数的入口地址,将此地址赋给另一个变量,则该变量为一个指向函数的指针。,二、 函数型指针的定义,1. 格式: 类型 (*标识符) ( );,2. 说明:类型为被指针 所指函数的返回值 的类型,标识符为一个指针名,(不是函数名),括号中为空,但必须有,表示该指针是专指函数的。定义中的( * )括号不能省略。,所指函数的返回值,只能指向函数,5 指针与函数,5 指针与函数 一 、 函数型指针,2019/5/3,41,通过指针调用函数,用函数名为指针初始化,表示指针指向该函数。,int (*pf)( ); int f( );,括号,pf=f; (指针 pf 指向函数f( ) ),应用:,增加了一种函数调用的方式,三、函数型指针的赋值,2019/5/3,42,main() int (*pf)( ); int a,b,k; scanf(“%d,%d”, ,相当于k=f(a,b),用函数名为指针赋值,输入:100 ,200 输出:100,200,100,举例分析-1,2019/5/3,43,main( ) int (*p)( ); int a,b,c; p=max; scanf(“%d,%d”, ,max(x,y) int x,y; return(xy?x:y); ,定义函数型指针,用函数名为指针赋值,通过指针调用函数,举例分析-2,求a和b中的较大的数。,2019/5/3,44,函数的调用可以用函数名,也可以用指针。,(*p)()定义之后,不是固定指向某一个函数,可以先后指向不同的函数(用新的函数名重新赋值)。,用函数名为指针赋值时,不必用参数。,用函数指针调用函数时,用(*p)代替原函数名。,区别: int (*s)( ) , int *s( ) 3 , int *s 3 ,说 明,2019/5/3,45,是一个函数,其返回值为一个指针。,函数调用的结果,通常得到一个返回值,带回主调函数,如果返回值为一个指针,则该函数就是指针型函数。,五、 指针型函数的定义,格式:类型 *标识符(参数表);,说明:类型为指针所指变量的类型,标识符为函数名,不是指针名,参数为函数的形参。,定义函数, 不是指针,四、指针型函数的概念,2019/5/3,46,char *str_chr(char *s,char ch); main( ) char *p, ch=C ; char str =“Pascal,C,Fortran”; printf(“string starts at adress%s :”,str); p=str_chr(str,ch); printf(“First occurrence of char%c is adress%un”,ch,p); printf(“This is position %u from0 n”,p-str); char *str_chr(char *s,char ch) while (*s!=ch) s+; return(s); ,求已给字符在给定的字符串中首次出现的位置和该字符的存储地址。,ch=C,实参为数组名 str和字符ch,地址传递,移动指针,举例分析,2019/5/3,47,使用 指针 ,编写完成字符串反向的 递归函数 。,指针,递归函数,1. 将给定字符串分为两个部分: 第 1部分是第 1 个字符和最后一个字符(不是0) 第 2部分是从第 2 个字符到倒数第 2 个字符,算法设计,2. (1)交换第 1 部分的两个字符。 (2)将第2部分构成一个字符串,递归,3. (1)定义两个字符指针,分别指向字符串的首字符和最后一个字符 (2) 将所指的两个字符交换 (3) 使中间部分构成一个“新”的字符串,递归。,五. 应用举例,2019/5/3,48,revstr( char *s ) char *p=s , c; while ( *p ) p+; p- -; if ( s p ) c = *s; *s = *p; *p= 0; revstr(s+1); *p=c; ,将指针移到0之前的最后一个字符,将最后一个移到字符串的最前面,形成一个新的字符串,以新串的起始地址s+1进行递归,程序分析,2019/5/3,49,1. 指针就是地址。 2. 指针可以指向任何数据类型,指向谁,就存放谁的地址。 3. 必须用地址值为指针变量初始化(&变量名,&a,或数组名),不许用整数。 4. 相同类型的指针可以相互赋值。,概念,6 本章小结,6 本章小结,2019/5/3,50,变量的指针 int *pi , i; pi=,一、指针类型总汇,2019/5/3,51,二、指针类型的两个运算符,&: 取址运算符 *: 指针间接访问运算符,int a , *pa; pa= *pa就是a。,2019/5/3,52,变量的指针 int i, *pi; pi= 则: *pi 与 i 等价。,数组的指针 int a10,*p; p=a; 则: *(p+i)=*(a+i)=ai 移动指针 i 个元素,函数的指针 int (*pf)( ), max(x,y); 指针初始化 pf=max;则函数调用:c=(*pf)(a,b) ; 与 c=max(a,b); 等价。,指针的指针 int a, *pa, *ppa; pa=,指针的数组 int *pa3; char *str =“fd”, “12”, “ab”;,指针型函数 int *f(x,y); main() int *p; p=f(a,b);,三、指针类型举例,2019/5/3,53,1. int a10, *pa; pa=a, 则:pa+i=a+i, *(pa+i)=*(a+i)=ai 。 2. int a33, *pa3=a0, a1, a2; 则: *(pai+j), *(*(pa+i)+j), *(*(a+i)+j)都可以实现对数组中任意元素aij的访问。 3. char *pc =“AAA”, “BBB”, “CCC”;的含义: pc0= “AAA”, pc1= “BBB”, pc2= “CCC” 。,四 、指针与数组的等价关系,2019/5/3,54,五. 指向结构体的指针 定义、使用与其他基本类型指针类似 可以使用指向运算符(-)引用指针所指向的结构体的成员 指向运算符 - 结构体指针-成员名 具有最高的优先级,自左向右结合 若struct student stu, *p=stu; 则stu.num、(*p).num、p-num等效,2019/5/3,55,E N D,上机与作业九,必做题 1. 调用函数swap(*p1,*p2)交换两数的值,实现将int a10与int b10互换后输出。 2. 用指针编写字符串比较函数strcmp(s,t),要求st时返回1, s=t时返回0 。 5. 输入一行字符,将其中的字符从小到大排列后输出。 先将程序编写在稿纸上,本周4上机调试运行得到正确结果。,完,1. 调用函数swap(*p1,*p2)交换两数的值,实现将int a10与int b10互换后输出。程序如下:,swap(int *p1, int *p2) int t; t=*p1; *p1=*p2; *p2=t; main() int i,a10,b10,k=1; for(i=0;i10;i+) ai=k; bi=k+1; k+=2; swap( ,程序执行输出结果如下:,2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19,2019/5/3,57,L9-2.c:用指针编写字符串比较函数strcmp(s,t),要求st时返回1, s=t时返回0 。 主程序如下:,main() char s80,t80; printf(“Input String s ,2019/5/3,58,L9-2.c 的strcmp函数如下:,strcmp(char *p,char *q) int i=0; while(*(p+i)!=0 | *(q+i)!=0) if(*(p+i)=*(q+i) i+; continue; else if(*(p+i)*(q+i) return 1; else return -1; return 0; ,2019/5/3,59,L9-2.c程序执行输出结果如下:,Input String s & t : abcxy abcdefg s=abcxy t=abcdefg strcmp=1,Input String s & t : abc abcdefg s=abc t=abcdefg strcmp=-1,Input String s & t : abcde abcde s=abcde t=abcde strcmp=0,2019/5/3,60,L9-5.c程序如下:,#include “string.h“ main() char c,s80; int i,j,k; printf(“Input String s : “); gets(s); puts(s); k=strlen(s); for(i=0;isj) c=si;si=sj;sj=c; printf(“sort=%snn“,s); getch(); ,程序执行输出结果如下: Input String s : heakbxc heakbxc sort=abcehkx,2019/5/3,61,L9-5.c程序如下:,#include “string.h“ main() char c,s80, *p; int i,j,k; printf(“Input String s : “); gets(s); puts(s); p=s; k=strlen(s); for(i=0;i *(p+j) c= *(p+i); *(p+i)= *(p+j); *(p+j)=c; printf(“sort=%snn“,p); getch(); ,程序执行输出结果如下: Input String s : heak
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度合同纠纷调解与仲裁服务合同
- 2025版复杂主题展览美陈策划与实施合同
- 二零二五年度法院调解离婚协议中养老金分割与房产分割合同
- 二零二五年度稻谷品牌营销推广合同
- 2025版建筑工程砂浆采购及环保认证合同范本
- 2025版智能住宅项目专用工程材料采购合同范本
- 二零二五年度地下管廊劳务工程承包合同范本
- 2025版宠物咬人赔偿协议及事故处理标准合同
- 二零二五年度房产抵押贷款合同范本编制指南
- 大型商场知识培训总结课件
- 信保业务自查问题统计表
- 2023年大学试题(大学选修课)-创业:道与术考试历年真摘选题含答案
- 心理健康评定量表
- 三基考试题库3
- 河道修防工高级工试题
- 女性生殖脏器
- 保障农民工工资支付协调机制和工资预防机制
- 流体力学的课件
- GB/T 9258.1-2000涂附磨具用磨料粒度分析第1部分:粒度组成
- GB/T 4458.3-2013机械制图轴测图
- GB/T 311.2-2013绝缘配合第2部分:使用导则
评论
0/150
提交评论