




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
14.1 概述,14.2 指针和变量,14.3 指针变量的定义、初始化和引用,14.4 指针变量的使用,单元14 指针(一),一、概 述,指针是一种数据类型。所谓指针,就是指存放数据的内存 地址。指针变量是一种变量,该变量中存放的数据就是指针类 型的数据。对一个变量或数组元素来说,可以通过变量名或数 组名下标来引用,也可以通过指针变量来引用,但需要事先 将指针变量“指向”变量或数组,所谓“指向”就是将变量或数组 的地址存放到指针变量中。,返回,本单元在介绍指针和指针变量的基础上,着重介绍指 向普通变量、字符串、数组的指针变量的定义和赋值的方 法,以及如何使用指针变量来引用对应的变量、字符串和 数组元素的方法。最后简要介绍指针类型数组和多级指针 的定义和使用。,二、指针和变量,(一)、指针,1、内存单元和地址 内部存储器是由多个内存单元组成的,每个内存单元都 有自己独有的地址,称为内存单元地址。,2、变量与地址,程序中可以用变量来存放各种数据,因此每个变量都需要 分配连续的内存单元。由于数据类型的不同,每个变量需要分 配的内存单元数目也不同。例如,字符型变量需要占用1个内存 单元;短整型变量需要占用连续的2个内存单元;单精度变量 需要占用连续的4个内存单元;双精度变量需要占用连续的8 个内存单元。,返回,当一个变量只占用一个内存单元时,内存单元的地址就是 变量的地址;当变量占用连续的若干个内存单元时,最前面一 个单元的地址就是该变量的地址。,例如,有一条定义语句“int i3,j=5;float f;”,给它分配的内存 单元如图1所示,而记录下来的变量与地址对照表如图2所示。,3,5,2001,2002,2003,2004,2005,2006,2007,2008,整型变量i,整型变量j,单精度变量f,变量与地址对照表,图1,图2,通过变量名查取变量的地址,再从变量对应地址的内存 单元中取得值或将某值存入变量对应地址的内存单元中称为 直接存取方式。,3、数组与地址,对一个数组来说所分配的内存单元必须是连续的并且是 按顺序对应数组元素的。每个数组元素也要占用连续的内存 单元。数组类型不同,每个数组元素占用的内存单元数也不 同。数组占用的总单元数等于数组长度每个数组元素占用 的内存单元数。,当一个数组元素只占用一个内存单元时,内存单元的地 址就是该数组元素的地址;当数组元素占用若干个连续的内 存单元时,最前面一个单元的地址就是该数组元素的地址。 当一个数组占用连续的若干个内存单元时,最前面的单元地 址称为数组的首地址,也是第一个数组元素的地址。,每个数组元素的地址可以通过下列公式求得: 数组元素ai的地址数组首地址i数组元素的数据类型 所占用单元数,对源程序进行编译时,每遇到一个数组,按其类型和长 度分配内存单元,同时记录数组名、数据类型、数组长度、 数组首地址。例如有一条定义语句“int a3=1,2,3;”,给它 分配的内存单元如图3所示,而记录下来的数组与地址对照 表如图4所示。,1,2,3,3000,3001,3002,3003,3004,3005,地址,内存单元,整型数组元素a0,整型数组元素a1,整型数组元素a2,图 3,数组与地址对照表,图4,(二)、指针变量,由于存放地址的变量像一个指针,指向要存取值的 变量,所以将这种变量称为“指针变量”。由于地址是一 种特殊的数据类型,所以存放地址的指针变量和存放字 符型、整型、实型数据的变量是不同类型的变量。,我们来看看如何使用指针变量,通过间接存取方式来 完成赋值语句“a1=i*j;”操作的。事先将变量i、j和数组元 素a1的地址分别存入指针变量pi、pj、p。操作过程是: 先从指针变量pi中取出i的地址,再从该地址中取出变量i的 值;按同样方法取出j的值进行相乘;再从指针变量p中取 出数组元素a1的地址,将运算结果存入该地址中。,C语言规定:, 变量地址只能利用运算符通过运算来获得。这个运算符是 “&”,称为“取地址”运算符,运算对象是变量或数组元素名, 运算结果是对应变量或数组元素的地址。例如变量i的地址应 写成表达式“&i”,数组元素a1的地址应写成表达式“&a1”。, 数组的首地址就是数组名,不必利用取地址运算符通过运 算来获得。例如定义了数组a,这个a在程序中是可以直接使 用的,它代表该数组的首地址,也是数组元素a0的地址。所 以“a”和“&a0”的作用是相同的。,三、指针变量的定义、初始化和引用,(一)、指针变量的定义和初始化,存储类型 数据类型 指针变量名1=初值1,;,2、功能:定义指向“数据类型”变量或数组的若干个指针变量, 同时给这些指针变量赋初值。这些指针变量具有确定 的“存储类型”。,1、指针变量的定义和初始化格式,返回,说明:,(1)指针变量名的构成原则是标识符,前面必须有“*”号。,(2)在一个定义语句中,可以同时定义普通变量、数组、 指针变量。,(3)定义指针变量时的“数据类型”可以选取任何基本数据类 型,也可以选取以后介绍的其它数据类型。这个数据类 型不是指针型变量中存放的数据类型,而是它将要指向 的变量或数组的数据类型。,(4)省略“存储类型”,默认为自动型(auto)。,(5)其中的“初值”通常是“&普通变量名”、“&数组变量名”或 “数组名”,这个普通变量或数组必须在前面已定义。即 这个普通变量或数组可以是在本语句的前面出现的定义 语句中定义的,也可以是在本定义语句中出现的,但必 须是在对应指针变量前出现。,(6)一个定义语句中,可以只给部分指针变量赋初值。,例:指针变量的定义和初始化。 int a; int *p=,(二)、指针变量的引用方式,1、给指针变量赋值,使用格式为:指针变量表达式。 这个表达式必须是地址型表达式,例如:int i,*p_i; p_i=,2、直接引用指针变量名,需要用到地址时,可以直接引用指针变量名。,例如:int i,j,*p=,3、通过指针变量来引用所指向的变量,使用格式为:* 指针变量名。在程序中“* 指针变量名”代表它 所指向的变量。,例如:int i=1,j=2,k,*p=,(三)、取地址运算符与指针运算符,取地址运算符和指针运算符的运算对象、运算规则、结 合性如表所示。,取地址运算符的运算对象必须是已定义过的变量或数组 元素,但不可以是数组名。运算结果是运算对象的地址。例如, 定义了变量a、数组b10,则&a、&b0、&b9均合法,分别代 表变量a的地址、数组元素b0的地址、数组元素b9的地址。 而&b则是错误的。,指针运算符的运算对象必须是已赋值的指针变量,不能 是普通变量。运算结果就是所指向的变量。例如已定义了变 量a、数组b10、指针变量p。若执行了“p=&a”,即p已指向了 a,则*p就代表变量a;若执行了“p=&b3”,即p已指向了数组 元素b3,则*p就代表数组元素b3。注意,当指针变量的值为 数组的首地址时,“* 指针变量”也是正确的,它代表数组的第一 个元素。例如,执行了“p=b”,即 p已指向了数组b,则*p就代表 数组元素b0。,取地址运算符和指针运算符的运算优先级别规定如下:, 取地址运算符、指针运算符和自增、自减等单目运算符是 同级别的 所有单目运算符的结合性均为自右向左,在混合使用运算符时,要注意分清它们的运算对象和运算 时的结合性。例如,设有变量a、指针变量pa,且pa已经指向a。 则:,*&a 正确的。相当于“*(&a)”,&a是变量a的地址,*(a地址)代 表变量a。 &* a 错误的。相当于“&(*a) ”,因为a不是指针变量, 所以* a不正确。 *&pa 正确的。相当于“*(&pa)”, &pa是pa的地址,*(pa地址) 代表指针变量pa。 &*pa 正确的。相当于“&(*pa)”,*pa代表变量a,&(变量a)代 表a的地址。,四、指针变量的使用,(一)、指向变量的指针变量的使用,1、给指针变量赋值(指针变量地址表达式),指针变量的引用主要有两种:一是赋值,二是引用所指向 的变量。,2、引用所指向的变量(* 指针变量),返回,例:用指针变量按从小到大的顺序输出三个整数。,main() int a,b,c,*pa= ,(二)、指向一维数组的指针变量的使用,当指针变量已指向数组后,就可以用指针变量来处理数 组中的每个元素。处理数组元素的关键是引用数组元素,引 用数组的方法与指针指向数组的方式有关:, 当指针变量指向数组首地址时,引用数组元素的方法如下:,引用“数组元素0” * (指针变量0) 或 * 指针变量 引用“数组元素i” * (指针变量i),1、用指向一维数组的指针变量处理数组元素, 当指针变量指向下标为i的数组元素时,引用数组元素的方 法如下:,引用“数组元素i” * (指针变量0) 或 * 指针变量 引用“数组元素i-k” * (指针变量-k) 引用“数组元素i+k” * (指针变量k), 当指针变量指向首地址后,对下标为i的数组元素引用一共 有下列四种方法:,* (指针变量i) * (数组名i) 指针变量i 数组名i,前两种引用数组元素的方法使用了“指针运算符”,称为 “指针法”;后两种引用数组元素的方法使用了“下标运算符()” 称为“下标法”。,注意: 指针变量是存放地址这种数据类型的变量,可以按照变 量的处理方式对其进行运算;而数组名仅仅是一个地址常量, 只能按照常量的方式进行处理。,2、指向一维数组的指针变量的运算,当指针变量已指向数组后,对指针变量可以进行算术和 关系运算。,(1)指针变量和整数的算术运算。 对指针变量进行算术运算的规则如下:,指针变量整数 “指针变量中的地址整数*指针变量类型占 用单元数”对应的地址,指针变量整数 “指针变量中的地址整数*指针变量类型占 用单元数”对应的地址,指针变量 “指针变量中的地址指针变量类型占用单元 数”对应的地址,此后,指针变量将指向下一 个数组元素。,指针变量 “指针变量中的地址指针变量类型占用单元 数”对应的地址,此后,指针变量将指向上一 个数组元素。,指针变量 “指针变量中的地址”对应的地址(因为是后缀 减1运算符),此后,指针变量将指向上一个 数组元素。,指针变量 “指针变量中的地址”对应的地址(因为是后缀 增1运算符),此后,指针变量将指向下一个 数组元素。,上述运算规则组成的式子称为表达式,这种表达式的类 型是“地址型”,所以上述规则组成的表达式常称为“地址型表 达式”或“指针型表达式”,简称为“指针表达式”。,例如:设定义了整型数组a10,整型指针变量pa,且执行了 pa=a。假定数组a的首地址为2000。请看下列的表达式及其 运算结果:,执行papa5后 pa指向数组元素a5,pa的地址值将为 20005*22010,其中的“2”是整型数据 占用的单元数;,再执行pa后 pa将指向数组元素a4,pa的地址值将为 20101*22008。,注意:对代表地址常量的数组名不能进行增1减1的算术运算, +a、a+、-a、a-、a=a+5、a=a-5都是错误的。(其中a为 数组名),(2)指针变量和指针变量的减法运算,指针变量和指针变量的减法运算规则如下: 指针变量1指针变量2,要求这两个指针变量必须指向同一个数组,否则不能进行 减法运算。运算 结果为它们所指向的数组元素下标相差的整 数。例如,定义了数组a和同类型的指针变量p1、p2。其中p1 指向数组元素a2;p2指向数组元素a6。,p1p2 结果为整数4 p2p1 结果为整数4,(3)指针变量的关系运算。,对指针变量进行关系运算对规则如下: 指针变量1 关系运算符 指针变量2,当两个指针变量的值(地址值)满足关系运算时,结果 为1(真)否则结果为0(假)。例如,定义了数组a和同类型的指针 变量p1、p2;使p1指向数组元素a2;p2指向数组元素a3。 请看下列关系表达式及其运算结果:,p1p2 结果为1(真)。 p1p2 结果为0(假),注意是后缀。 p2p1 结果为1(真),注意是前缀。 p1a 结果为0(假),a是地址常量。 p1&a9 结果为1(真), &a9是地址常量。 p2=a3 结果为1(真),a3是地址型表达式, 代表a3的地址。,例:输入10个整数存入一维数组,从中查找某个整数(该数从 键盘上读取),查到则输出其是第几个数,查不到则输出“Not Find!”。要求用指针法处理。,程序清单如下:,main() int a10,*p=a,x,n,flag=0; for (;pa+10;p+) scanf(“%d”,p); scanf(“%d”, ,3、关于使用“指针法”处理一维数组元素的下标越界问题,C语言对用“指针法”引用数组元素时,对下标是否越界也 不作检查,即允许下标越界。,例如,定义了整型数组a10,并使同类型的指针变量p指向了 数组a的首地址。则下列对a数组的元素引用都是允许的:,*(p-1) 代表数组元素a0前面2个单元中存放的数据 (看成整数) *(p+10) 代表数组元素a0前面2个单元中存放的数据 (看成整数),虽然C语言允许处理数组元素时下标可以越界,但在程序 中要尽量避免。当出现下标越界的情况,如果你使用的是数组 元素值,显然这个值不知为何值;如果你是将某个值存入该数 组元素,结果将会破坏对应内存单元中原来的值,使得后面程 序运行时,结果不正确,甚至出现预料不到的问题,而这样的 错误很难查找。,(三)、指向字符串的指针变量的使用,如果字符串是存放在某个字符数组中,可以用赋初值或 赋值方式将指针变量指向该字符数组,以后可以用指针变量 来处理字符数组中存放的字符串,也可以使用指针变量来处 理其中的单个字符,处理方法类似于一维数组。,在C语言中允许直接使用字符串常量,并不一定要求字符 串存放在字符数组中。这样的字符串常量可以用字符型指针变 量指向它,以后也可以用字符型指针变量来处理这个字符串或 字符串中的单个字符。,1、如何将指针变量指向字符串常量,第一种方法是给指针变量赋初值的方式,格式为“ * 指针变量字符串常量”;,假定要求字符型指针变量p指向字符串常量“abcd”;可以采 用下列两种方式:,第二种方法是先定义一个字符型指针变量,然后通过赋值 方式,其格式为“指针变量字符串常量”。,方法一 char *p=“abcd”; 方法二 char *p; p=“abcd”;,可以用赋值方式使指针变量指向字符串常量,但是不允 许将字符串常量赋值给字符型数组。例如,下列的程序段是 错误的:,char a10; a=“abcd”;,C语言允许在同一个程序中,使同一个字符型指针变量先 后指向不同的字符串常量,例如下列的程序段是正确的:,char *pa; pa=“12345678”; pa=“abcd”;, ,2、指向字符串常量的指针变量的使用,当一个字符型指针变量已指向某个字符串常量,就可以 利用指针变量来处理这个字符串。处理的方式主要有两种:,(1)处理整个字符串。 输出字符串 printf(“%s”,指针变量); 输入新的字符串代替原字符串 scanf(“%s”,指针变量);,(2)处理字符串中的单个字符。 第i个字符的表示方法 * (指针变量i),3、指向存放字符串的字符数组的指针变量的使用,当一个字符串已经存放在一个字符型数组中,并且用指 针变量指向这个字符数组,处理字符串中的单个字符就是处 理一维数组的元素,处理方法和前面介绍的处理一维数组元 素完全相同,唯一需要注意的是,数组元素的类型是字符型。,例:用字符型指针p指向字符串常量“12345678”,然后反复从 键盘上输入字符串,若大于给定的字符串常量,则输出“More larger!”;若小于给定的字符串常量,则输出“More Smaller!”。 直到输入的字符串等于这个字符串常量时结束。,程序清单如下:,main() char *p=“12345678”,a10,*pa,*pp,flag; while (1) gets(a); pp=p; pa=a; flag=m; while (*pp!=0) if (*pa*pp) flag=g;break; if (*pa*pp) flag=l;break; pa+,pp+; If (flag=m),if (flag=m) break; else if (flag=g) print(“More Larger!”); else printf(“More Smaller!”); printf(“%s=%sn”,p,a); ,指针二,单元15 指针(二),15.1 指向二维数组的指针变量的使用,15. 2 指针数组和多级指针,15. 3 指针应用程序设计例,一、指向二维数组的指针变量的使用,1、指针变量指向二维数组的某个元素,当指针变量指向二维数组的某个元素时,利用指针变量 来处理该数组元素和处理一维数组元素的方法相同。,(1)让指针变量指向二维数组的某个元素的方法。 用赋初值方式的格式为:* 指针变量&数组名下标1下标2 用赋值方式的格式为:指针变量&数组名下标1下标2,(2)二维数组元素的引用方法。 当指针变量已指向二维数组元素后,引用该数组元素的方法 是:* 指针变量,返回,例1:输入2行3列的矩阵元素后,存入二维数组。再按行列 格式输出。,main() int a23,*p; int i,j; for (i=0;i2;i+) for (j=0;j3;j+) p= ,程序如下:,2、指针变量指向二维数组的首地址,当指针变量指向二维数组的首地址时,也可以处理数组中 的任何一个元素。,(1)让指针变量指向二维数组首地址的方法。,使用赋初值或赋值方式都可以使指针变量指向二维数组的 首地址。,用赋初值方式的格式有两种: * 指针变量二维数组名 * 指针变量&二维数组名00,用赋值方式的格式也有两种: 指针变量二维数组名 指针变量&二维数组名00,(2)二维数组元素的引用方法。,当指针变量已指向二维数组的首地址后,引用该数组 第i行第j列的元素的方法是: *(指针变量i*列数j),例如:已定义了二维数组a23,其2行3列元素在内存中排列 顺序如下:,如果定义指针变量p并且指向数组a的首地址,则这些元素 的地址和引用方法如下:,元素,元素地址,元素引用,a00 p+0*3+0=p *(p+0*3+0)=*(p) a01 p+0*3+1=p+1 *(p+0*3+1)=*(p+1) a02 p+0*3+2=p+2 *(p+0*3+2)=*(p+2) a10 p+1*3+0=p+3 *(p+1*3+0)=*(p+3) a11 p+1*3+1=p+4 *(p+1*3+1)=*(p+4) a12 p+1*3+2=p+5 *(p+1*3+2)=*(p+5),例2:重编例1,要求使用指向二维数组首地址的指针变量处理 二维数组元素。,程序清单如下:,main() int a23,*p=a; int i,j; for (i=0;i2;i+) for (j=0;j3;j+) scanf(“%d”,p+i*3+j); for (i=0;i2;i+) printf(“n”); for (j=0;j3;j+) printf(“%10d”,*(p+i*3+j); ,例3:重编例1,要求用指向二维数组首地址的指针变量按一维 数组方式处理。,main() int a23,*p=a; int i,j; for (i=0;i2;i+) for (j=0;j3;j+) scanf(“%d”,p); p+; p=a; for (i=0;i2;i+) printf(“n”); for (j=0;j3;j+) printf(“%10d”,*p); p+; ,3、指针变量指向二维数组中某个一维数组,(1)让指针变量指向二维数组中某个一维数组的方法。,如果你希望将指针变量指向二维数组中某个一维数组, 首先要按下列格式定义一个指针变量: (* 指针变量)m 其中的m是对应二维数组的列长度,然后再用赋初值或赋值方式将该指针变量指向二维数组的 首地址 (* 指针变量)m二维数组名 (赋初值) 指针变量二维数组名 (赋值),二维数组中第i行对应的一维数组首地址可以用下列表达 式来获得: * (指针变量i),使用这种指针变量,需要注意以下几点:, 定义这种指针变量时,圆括号不能丢。, 定义这种指针变量时,m必须是整型常量表达式,并且其值 要等于希望指向的一维数组的长度。, 定义这种指针变量后,赋初值或赋值时应该赋予列长度为m 的二维数组首地址,然后用表达式方式来获得二维数组中某 个一维数组的首地址。,(2)二维数组元素的引用方法。,当某个指向一维数组的指针变量已指向对应二维数组的首 地址后,就可以用像处理一维数组元素的方式来处理这个二维 数组中已指向的一维数组。具体的格式如下:,数组元素地址 *(指针变量行下标)列下标 数组元素引用 *(*(指针变量行下标)列下标),例如语句“int a25,(*p)5=a;”定义了二维数组a25和 指向具有5个元素的一维数组指针变量p,并且使p指向二维数 组a的首地址。则对应二维数组中2个一维数组的首地址如下:,二维数组中的一维数组,用指针变量表示对应一维数组 的首地址,a0 a1,*(p0) *(p1),二维数组元素的引用格式如下:,数组元素 a00 a01 a02 a03 a04 引用格式 *(*(p+0)+0) *(*(p+0)+1) *(*(p+0)+2) *(*(p+0)+3) *(*(p+0)+4) 数组元素 a10 a11 a12 a13 a14 引用格式 *(*(p+1)+0) *(*(p+1)+1) *(*(p+1)+2) *(*(p+1)+3) *(*(p+1)+4),例4:重编例1,要求使用指向二维数组中一维数组的指针变量,程序清单如下:,main() int a23,(*p)3=a; int i,j; for (i=0;i2;i+) for (j=0;j3;j+) scanf(“%d”,*(p+i)+j); for (i=0;i2;i+) printf(“n”); for (j=0;j3;j+) printf(“%10d”,*(*(p+i)+j); ,二、指针数组和多级指针,当某个数组被定义为指针类型,就称这样的数组为指针 数组。指针数组中的每个元素都相当于一个指针型变量,只 能存放地址型数据。当定义的某个指针型变量专门用来存放 其它指针变量的地址时,这样的指针变量就称为指针的指针, 也叫二级指针。,1、指针数组的定义,需要注意指针数组是指针类型的,对其元素所赋的值必须 是地址值。,返回,格式 存储类型 数据类型 * 指针数组名1长度1初值1,功能 定义指向“数据类型”变量或数组的指针型数组,同时给 指针数组元素赋初值。这些指针变量具有指定的“存储 类型”。,说明 (1)指针数组名是标识符,前面必须有“*”号。,(2)在一个定义语句中,可以同时定义普通变量、数组、指 针变量、指针数组。可以给某些指针数组赋初值,而另 一些指针数组不赋初值。,(3)定义指针变量时的“数据类型”可以选取任何基本数据类 型,也可以选取其它数据类型。,(4)省略“存储类型”,默认为自动型(auto)。,(5)其中的“初值”与普通数组赋初值的格式相同,每个初值 通常是“&普通变量名”、 “&数组元素”或“数组名”,对应 的普通变量或数组必须在前面已定义。,(6)注意语句中指针型数组的书写格式,不能写成“ (* 数组名)长度”,因为这是定义指向含有“长度”这个 元素的一维数组的指针变量。,例如有定义语句“int a,b,c,*p3”,2、指针数组元素的引用, 引用所指向的普通变量或数组元素 * 指针数组名下标 对其赋值 指针数组名下标地址表达式 参加运算 (赋值运算) 指针变量指针数组名下标 (算术运算) 指针数组名下标整数 指针数组名下标整数 指针数组名下标 指针数组名下标 指针数组名下标 指针数组名下标 (关系运算)指针数组名下标 关系运算符 指针数组名下标,其中,算术运算和关系运算一般只使用于该指针数组元素 指向某个数组时。,例5:输入5个字符串存入一个二维数组中,然后定义一个指针 数组,使其元素分别指向这5个字符串并输出。,程序清单如下:,main() char s520,*p5; int i; for (i=0;i5;i+) pi=si; for (i=0;i5;i+) scanf(“%s”,pi); for (i=0;i5;i+) printf(“%sn”,pi); ,3、多级指针的定义和应用,在C语言中,把这种指针型变量称为“指针的指针”,意为 这种变量是指向指针变量的指针变量,也称多级指针。通常使 用的多级指针是二级指针,相对来说,前面介绍的指针变量可 以称为“一级指针变量”。,二级指针变量的定义和赋初值方法如下:,格式 存储类型 数据类型 *指针变量名初值,,功能 定义指向“数据类型”指针变量的二级指针变量,同时给 二级指针变量赋初值。,说明,(1)二级指针变量名的构成原则是标识符,前面必须有“* *”号。,(2)在一个定义语句中,可以同时定义普通变量、数组、指针 变量、指针数组、二级指针变量等。可以给某些二级
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级英语上册 Unit 3 Is this your pencil第3课时教学设计(新版)人教新目标版
- 防灾减灾日地震安全培训
- 三年级上美术教学设计-天外来客-苏少版
- 对客服务用语规范性培训
- 二年级语文下册 第六单元 17 要是你在野外迷了路教学设计 新人教版
- 2024中国铝业集团有限公司华东区域法律中心法律顾问招聘1人笔试参考题库附带答案详解
- 人教部编版六年级下册第二单元单元综合与测试表格教案及反思
- 九年级化学下册 第8单元 金属和金属材料 实验活动4 金属的物理性质和某些化学性质教学设计 (新版)新人教版
- 九年级道德与法治上册 第3单元 推进政治文明 第6课 建设法治中国 第2框 弘扬法治精神教学设计 北师大版
- 七年级地理下册 第七章 第三节 印度教学设计 新人教版
- 《化工腐蚀与防护》课程标准(煤化工技术)
- 2024中国华电集团限公司校招+社招高频考题难、易错点模拟试题(共500题)附带答案详解
- 土方平衡工程施工方案样本
- 消防安全知识掌上手册APP开发指南
- 培养孩子的人际交往能力
- 高三二诊考试分析报告
- 2024年ISO14001体系目标、指标和管理方案一览表
- DB37-T 4693.1-2024人民防空工程防护设备安装技术规程 第1部分:人防门-地方标准
- 基于六轴工业机器人的焊接工作站设计-毕业论文
- 安全绳培训课件
- 户型与结构布置研究报告
评论
0/150
提交评论