第06章-指针与引用《C++程序设计基础教程》课件_第1页
第06章-指针与引用《C++程序设计基础教程》课件_第2页
第06章-指针与引用《C++程序设计基础教程》课件_第3页
第06章-指针与引用《C++程序设计基础教程》课件_第4页
第06章-指针与引用《C++程序设计基础教程》课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第06章指针与引用《C++程序设计基础教程》课件第06章指针与引用《C++程序设计基础教程》课件2第6章指针6.1指针的定义与初始化6.2指针的使用6.3指针与数组6.4指针与字符串6.5指针与函数6.6引用6.7应用实例2第6章指针6.1指针的定义与初始化36.1指针的定义与初始化36.1指针的定义与初始化4指针:变量的地址。指针变量:专门用来存放另一变量的地址(指针)的变量。理解:一种特殊的变量,用来指向另一变量。其存放内容是另一变量的地址。6.1指针的定义与初始化4指针:变量的地址。6.1指针的定义与初始化56.1.1指针的定义一般形式基类型*

指针变量名;int

*p1,*p2;基类型:所指向变量的类型,而非指针本身数据值的类型。指针本身类型是unsignedlongint。指针变量名是p1,而不是*p1,即“*”只表示该变量是指针变量。56.1.1指针的定义一般形式66.2指针的使用两个与指针变量有关的运算符

(1)&

取地址运算符(2)*

指针运算符(间接访问运算符)例,&a为变量a的地址,*p为指针变量p所指向的存储单元。66.2指针的使用两个与指针变量有关的运算符7(1)p1=&a;&*p1?&*p1←→&a(2)*&a←→

a。6.2指针的使用*p1←→a7(1)p1=&a;6.2指针的使用*p1←→a8[例6.3]输入a和b两个数,按先大后小的顺序输出,a和b的值不变。main(){ inta,b,*p1,*p2,*p; cin>>a>>b;p1=&a;p2=&b; if(a<b) { p=p1;p1=p2;p2=p;} cout<<"a=“<<a<<“,b="<<b; cout<<"Max=“<<*p1<<",Min="<<*p2;}输出:a=10,b=20Max=20,Min=106.2指针的使用8[例6.3]输入a和b两个数,按先大后小的顺序输出,a和指针变量作函数参数[例6.4]用函数实现两个变量的交换voidSwap(int*p1,int*p2){ int*t; t=p1; p1=p2; p2=t;}main(){ inta=5,b=9;

Swap(&a,&b); cout<<"a="<<a<<",b="<<b;}输出:a=5,b=9intt;t=*p1; *p1=*p2; *p2=t;Swap(a,b);指针变量作函数参数输出:a=5,b=9intt;Sw106.3.1指针与一维数组数组元素的指针:数组元素的地址。如:inta[5];int*p,*q;p=&a[0];q=&a[2];*p=5;*q=8;a[0]a[1]a[2]a[3]a[4]p↙↙q&a[0]&a[2]58

6.3指针与数组106.3.1指针与一维数组a[0]a[1]a[2]a[311规定:数组名代表数组的首地址,即第一个元素a[0]的地址。a≌

&a[0]。若:p=a;

p=&a[0];则:p+1≌&a[1] *(p+1)≌a[1] p+i≌&a[i] *(p+i)≌a[i]p+1指向数组的下一个元素a[0]a[1]a[2]a[3]a[4]app+1a[i]≌*(a+i)p[i]≌*(p+i)

6.3指针与数组11规定:数组名代表数组的首地址,即第一个元素a[0]的地址12引用一个数组元素1)下标法,如a[i];2)指针法,如*(a+i)或*(p+i)。3)

用指针变量指向数组元素

6.3指针与数组12引用一个数组元素6.3指针与数组13例6.6输出数组中的全部元素intmain(){inta[10],i;for(i=0;i<10;i++)cin>>a[i];//引用数组元素a[i]

for(i=0;i<10;i++)cout<<<<"";}(1)下标法(2)指针法

将a[i]替换成*(a+i)a[i]13例6.6输出数组中的全部元素intmain(){14intmain(){inta[10];int*p;for(p=a;p<a+10;p++)cin>>*p;//输入a[0]~a[9]

for(p=a;p<a+10;p++)cout<<*p<<"";//p先后指向a[0]~a[9]}(3)用指针变量指向数组元素例6.6输出数组中的全部元素14intmain(){(3)用指针变量指向数组元素15若p指向a[i]),则:(1)*p++作用:先得到*p,即a[i],然后p自加1。

for(p=a;p<a+10;p++)cout<<*p;for(p=a;p<a+10;)cout<<*p++;*++p(2)(*p)++

作用:所指元素加1,即a[i]++注:元素值加1,而非指针值加1。例6.6输出数组中的全部元素≌≌*(p++)先p自加1,再*运算,得a[i+1]。15若p指向a[i]),则:例6.6输出数组中16intmain(){voidselect_sort(int*p,intn);inta[10],i;for(i=0;i<10;i++)cin>>a[i];select_sort(a,10);//数组名作实参cout<<"thesortedarray:"<<endl;for(i=0;i<10;i++)cout<<a[i]<<"";}voidselect_sort(int*p,intn){inti,j,k,t;for(i=0;i<n-1;i++){

k=i;for(j=i+1;j<n;j++)if(*(p+j)<*(p+k))k=j;

t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;}}例6.7将10个整数按由小到大排序6.3.2用指针变量作函数参数接收数组地址16intmain(){voidselect_sor176.3.2指针与二维数组1.多维数组元素的地址inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};176.3.2指针与二维数组1.多维数组元素的地址18a代表首行的起始地址(&a[0]),a+1代表a[1]行的首地址,即&a[1]。a[0],a[1],a[2]是一维数组名,a[0]代表一维数组a[0]中0列元素的地址,即&a[0][0]。a[1]的值是&a[1][0],a[2]的值是&a[2][0]。6.3.2指针与二维数组18a代表首行的起始地址(&a[0]),a+1代表a[1]行19a[0][1]的地址:&a[0][1],a[0]+1。a[0][1]:*(a[0]+1)或*(*(a+0)+1)

。a[i][j]:*(a[i]+j)或*(*(a+i)+j)

。6.3.2指针与二维数组19a[0][1]的地址:&a[0][1],a[0]+1。620(2)指向一维数组的指针变量指针的增值以一维数组的长度为单位。6.3.2指针与二维数组20(2)指向一维数组的指针变量6.3.2指针与二维数组21例6.8输出二维数组任一行列元素的值voidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;cin>>i>>j;p=a;cout<<*(*(p+i)+j)<<endl;}21↙1921例6.8输出二维数组任一行列元素的值voidmain226.4指针与字符串#include<string>voidmain(){char

str[]="IloveCHINA!";cout<<str<<endl;}1.用字符数组存放一个字符串例6.9定义一个字符数组并初始化,然后输出。string

str="IloveCHINA!";char

*str="IloveCUMT!";226.4指针与字符串#include<string>123例6.10将字符串str1复制为字符串str2voidmain(){charstr1[]="IloveCHINA!",str2[20],*p1,*p2;

p1=str1;p2=str2;for(;*p1!='\0';p1++,p2++)

*p2=*p1;

*p2='\0';p1=str1;p2=str2;cout<<"str1is:"<<p1<<endl;cout<<"str2is:"<<p2<<endl;}str1is:IloveCHINA!str2is:IloveCHINA!23例6.10将字符串str1复制为字符串str2void246.5指针与函数6.5.1用函数指针变量调用函数函数的指针:函数的入口地址。intmax(intx,inty){

returnx>y?x:y;}例6.11求a和b中的大者246.5指针与函数6.5.1用函数指针变量调用函数in25voidmain(){int(*p)(int,int);

//定义指向函数的指针变量pinta,b,m;p=max;

//p指向函数maxcin>>a>>b;

m=p(a,b);cout<<"max="<<m<<endl;}例6.11求a和b中的大者25voidmain(){例6.11求a和b中的大者266.5.2指针作为函数返回值指针函数:返回指针值的函数。定义指针函数的一般形式类型名*函数名(参数表列);例,

int*a(intx,inty);266.5.2指针作为函数返回值指针函数:返回指针值的函数276.7指针数组和指向指针的指针6.7.1指针数组的概念指针数组:元素为指针类型数据,即每个数组元素相当于一个指针变量。一维指针数组的定义形式类型名*数组名[数组长度];例,int*p[4];int(*p)[4];276.7指针数组和指向指针的指针6.7.1指针数组的概28例6.15若干字符串按字母顺序输出voidmain(){voidsort(char*name[],intn);//函数声明voidprint(char*name[],intn);

char

*name[]={"BASIC","FORTRAN","C++","Pascal","COBOL"};intn=5;sort(name,n);print(name,n);}voidsort(char*name[],intn){

char

*tmp;inti,j,k;28例6.15若干字符串按字母顺序输出voidmain(29for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++) if(strcmp(name[k],name[j])>0)k=j; if(k!=i){tmp=name[i];name[i]=name[k];name[k]=tmp;}}}voidprint(char*name[],intn){inti;for(i=0;i<n;i++)cout<<name[i]<<endl;}BASICCOBOLC++FORTRANPascal例6.15若干字符串按字母顺序输出29for(i=0;i<n-1;i++){BASIC例630例6.15若干字符串按字母顺序输出30例6.15若干字符串按字母顺序输出31间接访问:利用指针变量访问另一个变量。单级间址:指针变量中存放目标变量的地址。二级间址:指针变量中存放目标变量地址的地址指向指针的指针31间接访问:利用指针变量访问另一个变量。指向指针的指针32有关指针的数据类型的小结定义含义inti;定义整型变量int*p;p为指向整型数据的指针变量inta[N];定义整型数组a,它有N个元素int*p[N];定义指针数组p,由N个指向整型数据的指针元素组成int(*p)[N];p为指向含N个元素的一维数组的指针变量intf();f为带回整型函数值的函数int*p();p为带回一个指针的函数,该指针指向整型数据int(*p)();p为指向函数的指针,该函数返回一个整型值int**p;p是指向指针的指针变量,指向一个指向整型数据的指针变量int(*p)(char*);int*p(char*);p为指向函数的指针,该函数以char*为参数,返回int型值有一个char*参数的函数p,返回一个到int的指针32有关指针的数据类型的小结定义含义inti;定义整型变33指针运算小结(1)指针变量加/减一个整数例:p++,p--,p+i,p-i,p+=i,p-=i等。将指针变量原值和所指变量内存字节数相加/减。(2)指针变量赋值p=&a;

//将a的地址赋给pp=array;

//将数组array地址赋给pp=max;

//将函数max的入口地址赋给pp1=p2;

//将p2值赋给p133指针运算小结(1)指针变量加/减一个整数34(3)指针变量可有空值(空指针)p=NULL;NULListhenull-pointervalueusedwithmanypointeroperationsandfunctions.#defineNULL0指针运算小结34(3)指针变量可有空值(空指针)指针运算小结35(4)两个指针变量相减两个指针变量指向同一数组的元素,则两者值之差是两个指针间的元素个数。例,p1指向a[1],p2指向a[4],则p2-p1=(a+4)-(a+1)=4-1=3。两个指针变量相加无实际意义。指针运算小结35(4)两个指针变量相减指针运算小结一种新的数据类型。作用:为变量起一个别名。inta=20;int

&b=a;//声明b是a的引用intc=a;理解&是引用声明符,不是取地址运算符。无需另辟内存单元。使变量b具有变量a的地址。366.6引用(reference)20变量a变量b20变量c一种新的数据类型。366.6引用(reference)20376.6.1引用的定义引用被创建时,必须同时初始化。引用变量始终与代表的变量相联系,不能再作为其他变量的引用(别名)。inta=10;int&b=a;intc=a;a=100;b=c;只是赋值操作cout<<a<<b<<c376.6.1引用的定义引用被创建时,必须同时初始化。只是38引用PK

指针1)引用被创建时,必须同时被初始化。(指针无限制)2)一旦引用被初始化为指向一个对象,就不能被改变为对另一对象的引用。(指针无限制)3)不能有NULL引用。(指针无限制)38引用PK指针1)引用被创建时,必须同时被初始化396.9.3引用作为函数参数为什么需要引用(别名)?用作函数参数,扩充传递数据的功能。

函数参数传递(1)将变量名作为实参和形参值传送,传递变量的值,单向。形参值发生变化,不回传给实参。形参与实参代表不同的内存单元。396.9.3引用作为函数参数为什么需要引用(别名)?40(2)传递变量的指针实参是变量的地址,形参是指针变量。调用函数时,形参指向实参变量单元。“值传送”,传送“变量的地址”缺点:不够直接6.9.3引用作为函数参数40(2)传递变量的指针6.9.3引用作为函数参数41例6.19使用指针变量作形参,实现互换voidmain(){voidSwap(int*,int*);inti=3,j=5;Swap(&i,&j);//实参是变量的地址cout<<i<<""<<j<<endl;}voidSwap(int*p1,int*p2){

//形参是指针变量inttemp;temp=*p1;*p1=*p2;*p2=temp;}41例6.19使用指针变量作形参,实现互换voidmai42intmain(){

voidSwap(int&,int&);

inti=3,j=5;Swap(i,j);cout<<"i="<<i<<""<<"j="<<j<<endl;}void

Swap(int&a,int

&b)

{inttemp;temp=a;a=b;b=temp;}i=5j=3例6.20利用“引用形参”实现值互换42intmain(){i=5j=3例6.20利用43ThankYouTheEndofCh.6.

43ThankYouTheEndofCh.6.第06章指针与引用《C++程序设计基础教程》课件第06章指针与引用《C++程序设计基础教程》课件45第6章指针6.1指针的定义与初始化6.2指针的使用6.3指针与数组6.4指针与字符串6.5指针与函数6.6引用6.7应用实例2第6章指针6.1指针的定义与初始化466.1指针的定义与初始化36.1指针的定义与初始化47指针:变量的地址。指针变量:专门用来存放另一变量的地址(指针)的变量。理解:一种特殊的变量,用来指向另一变量。其存放内容是另一变量的地址。6.1指针的定义与初始化4指针:变量的地址。6.1指针的定义与初始化486.1.1指针的定义一般形式基类型*

指针变量名;int

*p1,*p2;基类型:所指向变量的类型,而非指针本身数据值的类型。指针本身类型是unsignedlongint。指针变量名是p1,而不是*p1,即“*”只表示该变量是指针变量。56.1.1指针的定义一般形式496.2指针的使用两个与指针变量有关的运算符

(1)&

取地址运算符(2)*

指针运算符(间接访问运算符)例,&a为变量a的地址,*p为指针变量p所指向的存储单元。66.2指针的使用两个与指针变量有关的运算符50(1)p1=&a;&*p1?&*p1←→&a(2)*&a←→

a。6.2指针的使用*p1←→a7(1)p1=&a;6.2指针的使用*p1←→a51[例6.3]输入a和b两个数,按先大后小的顺序输出,a和b的值不变。main(){ inta,b,*p1,*p2,*p; cin>>a>>b;p1=&a;p2=&b; if(a<b) { p=p1;p1=p2;p2=p;} cout<<"a=“<<a<<“,b="<<b; cout<<"Max=“<<*p1<<",Min="<<*p2;}输出:a=10,b=20Max=20,Min=106.2指针的使用8[例6.3]输入a和b两个数,按先大后小的顺序输出,a和指针变量作函数参数[例6.4]用函数实现两个变量的交换voidSwap(int*p1,int*p2){ int*t; t=p1; p1=p2; p2=t;}main(){ inta=5,b=9;

Swap(&a,&b); cout<<"a="<<a<<",b="<<b;}输出:a=5,b=9intt;t=*p1; *p1=*p2; *p2=t;Swap(a,b);指针变量作函数参数输出:a=5,b=9intt;Sw536.3.1指针与一维数组数组元素的指针:数组元素的地址。如:inta[5];int*p,*q;p=&a[0];q=&a[2];*p=5;*q=8;a[0]a[1]a[2]a[3]a[4]p↙↙q&a[0]&a[2]58

6.3指针与数组106.3.1指针与一维数组a[0]a[1]a[2]a[354规定:数组名代表数组的首地址,即第一个元素a[0]的地址。a≌

&a[0]。若:p=a;

p=&a[0];则:p+1≌&a[1] *(p+1)≌a[1] p+i≌&a[i] *(p+i)≌a[i]p+1指向数组的下一个元素a[0]a[1]a[2]a[3]a[4]app+1a[i]≌*(a+i)p[i]≌*(p+i)

6.3指针与数组11规定:数组名代表数组的首地址,即第一个元素a[0]的地址55引用一个数组元素1)下标法,如a[i];2)指针法,如*(a+i)或*(p+i)。3)

用指针变量指向数组元素

6.3指针与数组12引用一个数组元素6.3指针与数组56例6.6输出数组中的全部元素intmain(){inta[10],i;for(i=0;i<10;i++)cin>>a[i];//引用数组元素a[i]

for(i=0;i<10;i++)cout<<<<"";}(1)下标法(2)指针法

将a[i]替换成*(a+i)a[i]13例6.6输出数组中的全部元素intmain(){57intmain(){inta[10];int*p;for(p=a;p<a+10;p++)cin>>*p;//输入a[0]~a[9]

for(p=a;p<a+10;p++)cout<<*p<<"";//p先后指向a[0]~a[9]}(3)用指针变量指向数组元素例6.6输出数组中的全部元素14intmain(){(3)用指针变量指向数组元素58若p指向a[i]),则:(1)*p++作用:先得到*p,即a[i],然后p自加1。

for(p=a;p<a+10;p++)cout<<*p;for(p=a;p<a+10;)cout<<*p++;*++p(2)(*p)++

作用:所指元素加1,即a[i]++注:元素值加1,而非指针值加1。例6.6输出数组中的全部元素≌≌*(p++)先p自加1,再*运算,得a[i+1]。15若p指向a[i]),则:例6.6输出数组中59intmain(){voidselect_sort(int*p,intn);inta[10],i;for(i=0;i<10;i++)cin>>a[i];select_sort(a,10);//数组名作实参cout<<"thesortedarray:"<<endl;for(i=0;i<10;i++)cout<<a[i]<<"";}voidselect_sort(int*p,intn){inti,j,k,t;for(i=0;i<n-1;i++){

k=i;for(j=i+1;j<n;j++)if(*(p+j)<*(p+k))k=j;

t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;}}例6.7将10个整数按由小到大排序6.3.2用指针变量作函数参数接收数组地址16intmain(){voidselect_sor606.3.2指针与二维数组1.多维数组元素的地址inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};176.3.2指针与二维数组1.多维数组元素的地址61a代表首行的起始地址(&a[0]),a+1代表a[1]行的首地址,即&a[1]。a[0],a[1],a[2]是一维数组名,a[0]代表一维数组a[0]中0列元素的地址,即&a[0][0]。a[1]的值是&a[1][0],a[2]的值是&a[2][0]。6.3.2指针与二维数组18a代表首行的起始地址(&a[0]),a+1代表a[1]行62a[0][1]的地址:&a[0][1],a[0]+1。a[0][1]:*(a[0]+1)或*(*(a+0)+1)

。a[i][j]:*(a[i]+j)或*(*(a+i)+j)

。6.3.2指针与二维数组19a[0][1]的地址:&a[0][1],a[0]+1。663(2)指向一维数组的指针变量指针的增值以一维数组的长度为单位。6.3.2指针与二维数组20(2)指向一维数组的指针变量6.3.2指针与二维数组64例6.8输出二维数组任一行列元素的值voidmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4],i,j;cin>>i>>j;p=a;cout<<*(*(p+i)+j)<<endl;}21↙1921例6.8输出二维数组任一行列元素的值voidmain656.4指针与字符串#include<string>voidmain(){char

str[]="IloveCHINA!";cout<<str<<endl;}1.用字符数组存放一个字符串例6.9定义一个字符数组并初始化,然后输出。string

str="IloveCHINA!";char

*str="IloveCUMT!";226.4指针与字符串#include<string>166例6.10将字符串str1复制为字符串str2voidmain(){charstr1[]="IloveCHINA!",str2[20],*p1,*p2;

p1=str1;p2=str2;for(;*p1!='\0';p1++,p2++)

*p2=*p1;

*p2='\0';p1=str1;p2=str2;cout<<"str1is:"<<p1<<endl;cout<<"str2is:"<<p2<<endl;}str1is:IloveCHINA!str2is:IloveCHINA!23例6.10将字符串str1复制为字符串str2void676.5指针与函数6.5.1用函数指针变量调用函数函数的指针:函数的入口地址。intmax(intx,inty){

returnx>y?x:y;}例6.11求a和b中的大者246.5指针与函数6.5.1用函数指针变量调用函数in68voidmain(){int(*p)(int,int);

//定义指向函数的指针变量pinta,b,m;p=max;

//p指向函数maxcin>>a>>b;

m=p(a,b);cout<<"max="<<m<<endl;}例6.11求a和b中的大者25voidmain(){例6.11求a和b中的大者696.5.2指针作为函数返回值指针函数:返回指针值的函数。定义指针函数的一般形式类型名*函数名(参数表列);例,

int*a(intx,inty);266.5.2指针作为函数返回值指针函数:返回指针值的函数706.7指针数组和指向指针的指针6.7.1指针数组的概念指针数组:元素为指针类型数据,即每个数组元素相当于一个指针变量。一维指针数组的定义形式类型名*数组名[数组长度];例,int*p[4];int(*p)[4];276.7指针数组和指向指针的指针6.7.1指针数组的概71例6.15若干字符串按字母顺序输出voidmain(){voidsort(char*name[],intn);//函数声明voidprint(char*name[],intn);

char

*name[]={"BASIC","FORTRAN","C++","Pascal","COBOL"};intn=5;sort(name,n);print(name,n);}voidsort(char*name[],intn){

char

*tmp;inti,j,k;28例6.15若干字符串按字母顺序输出voidmain(72for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++) if(strcmp(name[k],name[j])>0)k=j; if(k!=i){tmp=name[i];name[i]=name[k];name[k]=tmp;}}}voidprint(char*name[],intn){inti;for(i=0;i<n;i++)cout<<name[i]<<endl;}BASICCOBOLC++FORTRANPascal例6.15若干字符串按字母顺序输出29for(i=0;i<n-1;i++){BASIC例673例6.15若干字符串按字母顺序输出30例6.15若干字符串按字母顺序输出74间接访问:利用指针变量访问另一个变量。单级间址:指针变量中存放目标变量的地址。二级间址:指针变量中存放目标变量地址的地址指向指针的指针31间接访问:利用指针变量访问另一个变量。指向指针的指针75有关指针的数据类型的小结定义含义inti;定义整型变量int*p;p为指向整型数据的指针变量inta[N];定义整型数组a,它有N个元素int*p[N];定义指针数组p,由N个指向整型数据的指针元素组成int(*p)[N];p为指向含N个元素的一维数组的指针变量intf();f为带回整型函数值的函数int*p();p为带回一个指针的函数,该指针指向整型数据int(*p)();p为指向函数的指针,该函数返回一个整型值int**p;p是指向指针的指针变量,指向一个指向整型数据的指针变量int(*p)(char*);int*p(char*);p为指向函数的指针,该函数以char*为参数,返回int型值有一个char*参数的函数p,返回一个到int的指针32有关指针的数据类型的小结定义含义inti;定义整型变76指针运算小结(1)指针变量加/减一个整数例:p++,p--,p+i,p-i,p+=i,p-=i等。将指针变量原值和所指变量内存字节数相加/减。(2)指针变量赋值p=&a;

//将a的地址赋给pp=array;

//将数组array地址赋给pp=max;

//将函数max的入口地址赋给pp1=p2;

//将p2值赋给p133指针运算小结(1)指针变量加/减一个整数77(3)指针变量可有空值(空指针)p=NULL;NULListhenull-pointerv

温馨提示

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

评论

0/150

提交评论