第7章 指针
指针式万用表的教案

指针式万用表的教案第一章:指针式万用表简介1.1 教学目标让学生了解指针式万用表的定义和作用让学生熟悉指针式万用表的结构和特点1.2 教学内容指针式万用表的概念指针式万用表的分类指针式万用表的特点和优势1.3 教学方法讲授法:讲解指针式万用表的定义、分类和特点演示法:展示指针式万用表的结构和操作方法1.4 教学步骤引入话题:介绍指针式万用表的概念讲解分类:讲解指针式万用表的分类强调特点:强调指针式万用表的特点和优势展示操作:展示指针式万用表的结构和操作方法第二章:指针式万用表的使用方法2.1 教学目标让学生掌握指针式万用表的使用方法让学生了解指针式万用表的测量范围和精度2.2 教学内容指针式万用表的使用方法指针式万用表的测量范围和精度2.3 教学方法讲授法:讲解指针式万用表的使用方法和测量范围实践操作:让学生亲自操作指针式万用表进行测量2.4 教学步骤讲解使用方法:讲解指针式万用表的使用方法和步骤测量练习:让学生亲自操作指针式万用表进行测量练习讨论问题:讨论指针式万用表的测量范围和精度问题第三章:指针式万用表的维护和保养3.1 教学目标让学生了解指针式万用表的维护和保养方法让学生掌握指针式万用表的故障排除方法3.2 教学内容指针式万用表的维护和保养方法指针式万用表的故障排除方法3.3 教学方法讲授法:讲解指针式万用表的维护和保养方法案例分析:分析指针式万用表的故障案例3.4 教学步骤讲解维护保养:讲解指针式万用表的维护和保养方法分析故障案例:分析指针式万用表的故障案例故障排除练习:让学生亲自进行指针式万用表的故障排除练习第四章:指针式万用表的应用实例4.1 教学目标让学生了解指针式万用表在实际工作中的应用让学生掌握指针式万用表的实际操作技能4.2 教学内容指针式万用表的应用实例指针式万用表的实际操作技能4.3 教学方法讲授法:讲解指针式万用表的应用实例实践操作:让学生亲自操作指针式万用表进行实际测量4.4 教学步骤讲解应用实例:讲解指针式万用表在实际工作中的应用实例实际操作练习:让学生亲自操作指针式万用表进行实际测量练习讨论问题:讨论指针式万用表的实际操作技巧第五章:指针式万用表的测量误差及改进方法5.1 教学目标让学生了解指针式万用表的测量误差来源让学生掌握指针式万用表的改进方法5.2 教学内容指针式万用表的测量误差来源指针式万用表的改进方法讲授法:讲解指针式万用表的测量误差来源案例分析:分析指针式万用表的测量误差案例5.4 教学步骤讲解误差来源:讲解指针式万用表的测量误差来源分析误差案例:分析指针式万用表的测量误差案例改进方法讨论:讨论指针式万用表的改进方法第六章:指针式万用表在电气测量中的应用6.1 教学目标让学生了解指针式万用表在电气测量中的重要作用让学生掌握指针式万用表在电气测量中的操作技巧6.2 教学内容指针式万用表在电气测量中的应用范围指针式万用表在电气测量中的操作步骤6.3 教学方法讲授法:讲解指针式万用表在电气测量中的应用范围实践操作:让学生亲自操作指针式万用表进行电气测量6.4 教学步骤讲解应用范围:讲解指针式万用表在电气测量中的应用范围操作步骤讲解:讲解指针式万用表在电气测量中的操作步骤实践测量:让学生亲自操作指针式万用表进行电气测量第七章:指针式万用表在电子测量中的应用让学生了解指针式万用表在电子测量中的重要作用让学生掌握指针式万用表在电子测量中的操作技巧7.2 教学内容指针式万用表在电子测量中的应用范围指针式万用表在电子测量中的操作步骤7.3 教学方法讲授法:讲解指针式万用表在电子测量中的应用范围实践操作:让学生亲自操作指针式万用表进行电子测量7.4 教学步骤讲解应用范围:讲解指针式万用表在电子测量中的应用范围操作步骤讲解:讲解指针式万用表在电子测量中的操作步骤实践测量:让学生亲自操作指针式万用表进行电子测量第八章:指针式万用表在故障诊断中的应用8.1 教学目标让学生了解指针式万用表在故障诊断中的重要作用让学生掌握指针式万用表在故障诊断中的操作技巧8.2 教学内容指针式万用表在故障诊断中的应用范围指针式万用表在故障诊断中的操作步骤8.3 教学方法讲授法:讲解指针式万用表在故障诊断中的应用范围实践操作:让学生亲自操作指针式万用表进行故障诊断8.4 教学步骤讲解应用范围:讲解指针式万用表在故障诊断中的应用范围操作步骤讲解:讲解指针式万用表在故障诊断中的操作步骤实践诊断:让学生亲自操作指针式万用表进行故障诊断第九章:指针式万用表的安全使用与注意事项9.1 教学目标让学生了解指针式万用表使用中的安全注意事项让学生掌握指针式万用表的正确使用方法9.2 教学内容指针式万用表使用中的安全注意事项指针式万用表的正确使用方法9.3 教学方法讲授法:讲解指针式万用表使用中的安全注意事项演示法:演示指针式万用表的正确使用方法9.4 教学步骤讲解安全注意事项:讲解指针式万用表使用中的安全注意事项演示正确使用方法:演示指针式万用表的正确使用方法学生练习:让学生亲自操作指针式万用表进行练习第十章:指针式万用表的故障与维修10.1 教学目标让学生了解指针式万用表可能出现的故障让学生掌握指针式万用表的基本维修方法10.2 教学内容指针式万用表可能出现的故障分析指针式万用表的基本维修方法10.3 教学方法讲授法:讲解指针式万用表可能出现的故障实践操作:让学生亲自进行指针式万用表的简单维修操作10.4 教学步骤讲解故障分析:讲解指针式万用表可能出现的故障讲解维修方法:讲解指针式万用表的基本维修方法维修操作练习:让学生亲自进行指针式万用表的简单维修操作重点和难点解析1. 指针式万用表的结构和特点:重点关注指针式万用表的各部分结构和功能,以及其相比数字式万用表的优势。
C语言程序设计实训教程第7章 指 针

12
2)指针与一维数组 【例 7.6】 下列程序的运行结果是( )。[读 程序写结果,重庆市 2001年第 2次等级考试]
13
14
3)指向字符的指针
15
16
17
18
4)指针与二维数组
19
5)指向一维数组的指针(行指针) 【例 7.18】 对 int(﹡p)[5];的正确描述 是( )。[多选题,重庆市 2003年第 1次等级考 试] A. p是数组名 B. p是指针变量名 C. p数组中有 5个元素 D .p指向一个包含 5个元素的整型数组 E. p是一个整型数组 答案:B D
22
7)指针数组 当数组的元素类型为指针时,叫做指针数组。 【例 7.21】 下列程序的运行结果是( )。 [读程序写结果,重庆市 2004年第 2 次等级考试]
23
8)指针做函数参数 指针做函数参数的主要目的是利用在函数中, 利用指针去操作主调函数中的变量。 【例 7.22】 下列程序在数组中同时查找最大 值下标和最小值下标,并分别存放在 main函数的 变量 max和 min中,请填空。[读程序写结果,重 庆市 2003年第 2次等级考试]
10
【例 7.3】 由于指针的数据类型实际上是指定 指针所能指向对象的数据类型,所以不同数据类型 的指针变量不能相互赋值。( )[判断题,重庆市 2005年第 2次等级考试] 答案:对 分析:在某些特定情况下,可以在不同数据类 型指针之间通过强制类型转换赋值。
11
【例 7.4】 若有定义:long intj,﹡p;,则操 作 j=(long int)p;是合法操作。( )[判断题, 重庆市 2004年第 1次等级考试] 答案:对 【例 7.5】 在 C 语言中,程序
第7章 XLink和XPointer

相关属性(4)
xlink:type:指定作为一个元素被创建的 链接的类型。分为: simple:简单链接。类似html的超链接。 extended, resource:允许创建一个指 向多个文档的多向链接。 locator:指向远程资源。 arc:描述两个链接之间的横向路径。
简单链接的例子
<?xml version="1.0" encoding="gb2312"?> 声明XLink命名空间,为了访问XLink的属 <books 性和特性 xmlns:xlink="/1999/xlink"> <book xlink:type="simple" 简单xml链接 Xlink:href="/books/xml/ Database.jpg" Xlink:show="new" xlink:actuate="onLoad"> 数据库概论 </book> </books>
7.2 XPointer
<xlink:simple xmlns:=/1999/xlink Xlink:href=“movies.xml#xpointer(/libra 文档中某个节点 ry/dvd/title[5])” 作为链接的资源 Xlink:title=“address” Xlink:show=“replace” Xlink:actuate=“onRequest”
• xlink:type:固定为extended • <xlink:arc>:作为扩展链接的子元素出现,定 义参与扩展链接的两个定位之间的连接 • <xlink:locator>:作为扩展链接的子元素出现, 指定参与扩展链接的定位 • xlink:from:显示定了链接的数据源 • xlink:to:显示定义了连接的目标地址 • <xlink:resource>:定义链接的本地(内联) 部分 • <xlink:locator>和<xlink:resource>元素的href 属性值,显示定义了连接的数据源
C语言教材第七章指针实验

C语⾔教材第七章指针实验第七章指针第⼀部分知识训练【知识要点】1. 地址与指针指针变量的概念:⽤⼀个变量专门来存放另⼀个变量的地址。
2. 指向变量的指针变量指针变量的形式:基类型 *指针变量名;&: 取地址运算符;*:指针运算符。
3. 指针与数组引⽤⼀个数组元素可以⽤下标法和指针法;可以⽤数组名作函数的参数。
4.指针与函数函数指针变量定义的⼀般形式为:类型说明符 (*指针变量名)();⼀个函数的返回值可以是⼀个函数。
【典型习题与解析】5. char * const p;char const * pconst char *p上述三个有什么区别?【解析】char * const p; //常量指针,p的值不可以修改;char const * p;//指向常量的指针,指向的常量值不可以改;const char *p; //和char const *p。
6. main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}输出结果是什么?【解析】答案:输出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执⾏结果是2,5。
&a+1不是⾸地址+1,系统会认为加⼀个a数组的偏移,是偏移了⼀个数组的⼤⼩(本例是5个int)。
1)&a是数组指针,其类型为 int (*)[5];⽽指针加1要根据指针类型加上⼀定的值,不同类型的指针+1之后增加的⼤⼩不同。
2)a是长度为5的int数组指针,所以要加 5*sizeof(int),所以ptr实际是a[5],但是prt与(&a+1)类型是不⼀样的(这点很重要),所以prt-1只会减去sizeof(int*) a,&a的地址是⼀样的,但意思不⼀样。
3)a是数组⾸地址,也就是a[0]的地址,&a是对象(数组)⾸地址,a+1是数组下⼀元素的地址,即a[1],&a+1是下⼀个对象的地址,即a[5]。
教材课后题答案-第7章

习题7一 单选题1.设有如下定义,则表达式sizeof(y)的值是【 】。
struct data {long *ln; char c;struct data *last,*next; }y; A.7 B.9 C.13 D.17 【答案】C【解析】指针变量在内存中占用4个字节,所以sizeof(y)的值是4+1+4+4=13 2.设有以下程序段,则表达式的值不为100的是【 】。
struct st{int a;int *b;}; void main(){int m1[]={10,100},m2[]={100,200}; struct st *p,x[]={99,m1,100,m2}; p=x; ... }A.*(++p->b)B.(++p)->aC.++p->aD.(++p)->b 【答案】D【解析】根据题意,p 指向x 数组,x[0]的b 成员指向m1数组,x[1]的b 成员指向m2数组,如图7-1所示。
选项A 中p->b 指向m1[0],通过“++”运算p->b 指向m1[1],所以选项A 的表达式的值为100。
选项B 中++p 使p 指向x[1],x[1]的a 成员的值是100。
选项C 中p 指向x[0],x[0]的a 成员做“++”运算,结果为100。
选项D 中++p 使p 指向x[1],x[1]的b 成员的值是指针,所以选择选项D 。
m1m2p图7-13.设有以下定义,且如图7-2所示,指针head 和p 指向链表的第一个结点,指针q 指向新的结点,则不能把新结点插入在第一个结点之前的语句是【 】。
headpq图7-2struct node{int a;struct node *next;}*head,*p,*q;A.head=q,q->next=p;B.head=q,q->next=head;C.q->next=head,head=q;D.head=q,head->next=p;【答案】B4.设有如下结构体说明和变量定义,且如图7-3所示,指针p指向变量one,指针q指向变量two,则不能将结点two接到结点one之后的语句是【】。
07-第7章 指针调整故障处理

目录第7章指针调整故障处理........................................................................................................ 7-17.1 背景知识............................................................................................................................ 7-17.1.1 指针调整的机理 ...................................................................................................... 7-17.1.2 指针调整的检测上报............................................................................................... 7-27.1.3 指针调整的性能事件............................................................................................... 7-37.2 常见故障原因..................................................................................................................... 7-47.3 故障定位方法与步骤.......................................................................................................... 7-57.3.1 常用定位方法.......................................................................................................... 7-57.3.2 故障定位步骤.......................................................................................................... 7-57.4 分类故障定位与排除.......................................................................................................... 7-97.4.1 检查时钟配置数据................................................................................................... 7-97.4.2 检查环境温度.......................................................................................................... 7-97.4.3 检查设备对接的同步情况........................................................................................ 7-97.4.4 检查光纤连接........................................................................................................ 7-107.4.5 检查外部时钟质量................................................................................................. 7-107.4.6 检查网元硬件故障................................................................................................. 7-10插图目录图7-1 AU指针的产生....................................................................................................... 7-2图7-2 组网示意图............................................................................................................ 7-2图7-3 指针调整故障处理流程图...................................................................................... 7-7表格目录表7-1 设备支持的指针调整性能事件............................................................................... 7-3表7-2 指针调整的常见原因 ............................................................................................. 7-4表7-3 与指针调整关的告警及告警产生的可能原因......................................................... 7-7第7章指针调整故障处理本章介绍OptiX OSN 1500设备指针调整的故障处理流程和故障处理方法,包括:●背景知识●常见故障原因●故障定位方法与步骤●分类故障定位与排除7.1 背景知识指针调整是SDH网络所特有的一种现象。
《c++程序设计》第7章 指针

(1)取地址运算符&: 取出变量的内存首地址
(2)指针变量的赋值: 指针变量=&变量;或指针变量=指针变量;
3.指针变量的引用
指针运算符* :通过指针变量间接访问变量对应存储单元内容。
【例7.1】定义指针变量
p、p1、q,并将变量a的 地址赋给p、p1,输出a、 p、p1、*p、*p1的值。
【例7.3】指针变量的自加、自减、加n和减n运算。例程
3.指针变量的关系运算
指针变量的关系运算是指针变量值的大小比较,即 对两个指针变量内的地址进行比较,主要用于对数组元 素的判断。
【例7.4】用指针变量求一维实型数组元素和,并输出数组每个元 素的值及数组和。 例程
4.指针运算符的混合运算与优先级
指针数组
例如,指针数组的定义: int *pi[4];
表示定义了由4个整型指针元素pi[0]、pi[1]、pi[2]、pi[3]组成的整型指针数组。 char *pc[4];
表示定义了由4个字符型指针元素pc[0]、pc[1]、pc[2]、pc[3]组成的字符型指针数组。 (3)指针数组元素的引用 【例7.15】用指针数组输出字符串
3.数组元素的引用
对一维数组a[ ]而言,当p=a时: ①第i个元素地址:&a[i]= p+i=a+i。 ②第i个元素值:a[i]= *(p+i) =*(a+i)=p[i]。
一维数组的第i个元素有四种方式引用: a[i]、*(p+i) 、*(a+i)、p[i]。
用数组指针的四种方法求一维数组中的最大值的方法为: 方法一:使用*(a+i)访问a[i] 方法一:用指针变量名p代替数组名a,即用 p[i]代替a[i] 方法二:移动指针变量p++,用*p访问a[i] 方法三:使用*(p+i)访问第 i个元素a[i]
第7章 指针(答案)

p=&a; printf("%d\n",++*p); } A)23 B)24 C)25 D)26 9、下列函数的功能是(A) int fun (char *x){ char *y=x; while(*y++); return(y-x-1); } A)求字符串的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串y C)将字符串x连接到字符串中y后面 10、设有如下定义 char *aa[2]={"abcd","ABCD"}; 则以下说法正确的是(C) A)aa数组的元素的值分别是“abcd”和“ABCD”。 B)aa是指针变量,它指向含有两个数组元素的字符型一维数组。 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地 址。 D)aa数组的两个元素中各自存放了字符'a'和'A'的地址。 11、若有以下定义和语句 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是(B) A)*p B)a[10] C)*a D)a[p-a] 12、下面定义不正确的是(B) A)int *p; B)int p[n]; C)int *p(); D)int (*p)(); 13、有下面程序(假设int 类型为2个字节) main() { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%x\n",p); printf("%x\n",p+9); } 该程序有两个printf函数,如果第一个printf输出的是194,则第二个 printf输出的结果是(D) A)203 B)204 C)1a4 D)1a6 14、下面程序的输出结果是(D)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.二维数组的元素地址与元素值
(1)第i行首地址: a[i] 、*(a+i)、&a[i][0]。 (2)元素a[i][j]的地址: a[i]+j 、*(a+i)+j、&a[i][0]+j、&a[i][j] (3)元素a[i][j]值: *(a[i]+j) 、 *(*(a+i)+j)、*(&a[i][0]+j)、a[i][j] 【例7.9】定义二维数组a[3][3],用第一种表示行地址、 行首地址、元素地址的方式输出行地址、行首地址、元 素地址及元素值。 例程
【例7.12】用指针变量作为 函数参数,编写字符串复制函 数str_cpy(char *p1,char *p2)。 在主函数中定义二个字符数组 str1[80]、str2[80],用getline() 函数将字符串输入str2中,然后 调用str_cpy()函数将str2复制到 str1中,最后输出str1。 例程
7.2 指针与数组
7.2.1 一维数组与指针 1.数组指针
数组的首地址称为 数组指针。 数组a的首地址用数 组名a表示,即:
数组指针= &a[0]=a。
2.数组指针变量
存放数组元素地址的变量称为数组指针变量。例如: int a[5]; int *p=&a[0]; 则p为数组指针变量。 【例7.6】用指针变量访问数组元素。例程 由此例可以看出,访问数组元素值有三种方法: (1)移动指针变量(p++),依次访问数组元素(*p)。 (2)指针变量不变,用p+i或 a+i 访问数组第i个元素。 (3)以指针变量名p作为数组名用p[i]访问数组元素a[i]。
第7章 指针
目的与要求 7.1 指针与指针变量 7.2 指针与数组 7.3 指针变量与数组作为函数参数 7.4 指针数组 7.5 指向一维数组的指针变量 7.6 返回指针值的函数 7.7 函数指针变量 7.8 new和delete运算符 7.9 引用类型变量和const类型的指针 本章小结
目的与要求
指针数组举例
【例7.16】将若干个字符串按升序排序后输出。 例程
用指针数组对字符串排序
7.5 指向一维数组的指针变量
1.作用:用于表示二维数组某行各元素值。 2.定义格式:
<类型> (*<指针变量名>)[<数组的列数>];
例如: int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int (*p)[3]; //数组长度3必须与二维数组a[3][3]的列数3相同 p=&a[0];
【例7.13】用指针与数组作为函数参数,用四种方法求整型数 组的最大值。例程 【例7.14】用指针与数组作为函数参数,用四种方法实现一维 整型数组的排序。 例程
指针变量、数组指针变量、字符型指针变量小结
指针变量、数组指针变量、字符型指针变量都属于 同一类型的指针变量,它们的定义格式为 : <类型>*<指针变量名>= &变量; 只有赋给指针变量地址时才能确定是属于哪一类指 针变量。例如: 变量的指针变量:int x=10,* p1=&x; 数组的指针变量:int a[5]={1,2,3,4,5},*p2=a; 字符串指针变量:char s[5]=”ABCD”,*p3=s;
二维数组a的行地址、行首地址、元素地址、元素值的各种表示方式 行地址、元素地址、元素值 表示方式
第i行行地址
a+i、&a[i]
第i行首地址(第i行第0列地址) a[i]、 *(a+i)、 &a[i][0] 元素a[i][j]的地址 第i行第j列元素值 a[i]+j 、*(a+i)+j 、&a[i][0]+j、&a[i][j] *(a[i]+j) 、 *(*(a+i)+j) 、 *(&a[i][0]+j)、a[i][j]
指针变量的算术运算
(4)指针变量减n运算 格式:<指针变量>=<指针变量>―n; 作用:将指针变量指向上n个元素的运算,即: <指针变量>=<指针变量>―sizeof(<指针变量类型>)*n 【例7.3】指针变量的自加、自减、 加n和减n运算。例程
3.指针变量的关系运算
指针变量的关系运算是指针变量值的 大小比较,即对两个指针变量内的地址进 行比较,主要用于对数组元素的判断。
先将字符串存放到内存 再将串首地址送给pc
串地址可赋给pc
pc=s; cin>>pc;cout<<pc;
(5)值的改变 字符数组首地址不能改变 指针变量的值可以改变
7.3 指针变量与数组作为函数参数
7.3.1 指针变量作为函数参数 1.函数定义格式
<类型><函数名>(<类型> *<指针变量名>,…) { 函数体}
指针变量作为函数参数举例
【例7.11】编写两个数据交换函数,用指针变 量作为函数参数实现两个数据的交换,交换 过程如图所示。 例程
*p=x p 10.5 *q=y q 20.5 (a) 数据交换前 q
temp
x p 20.5 y 10.5
(b) 数据交换后
通过指针实现数据交换
指针变量作为函数参数举例
4.指针变量初始化
例如: int *p=&a;
指针变量
7.1.3 指针变量的运算
1.指针变量赋值运算
【例7.2】定义三个整型变量a1、a2、a3,用指针变量 完成a3=a1+a2的操作。再定义两个实型变量b1、b2, 用指针变量完成b1+b2的操作。 例程
2.指针变量的算术运算
(1)自加运算 格式:<指针变量>++; 作用:将指针变量指向下一个元素,即: <指针变量>=<指针变量>+sizeof(<指针变量类型>)
2.指针变量的赋值
(1)取地址运算符&: 取出变量的内存首地址 (2)指针变量的赋值: 指针变量=&变量;或指针变量=指针变量;
3.指针变量的引用
指针运算符* :通过指针变量间接访问变量对应存 储单元内容。 地址1000 【例7.1】定义指针变量 100 p、p1、q,并将变量a的 指针变量p 1000 变量a 地址赋给p、p1,输出a、 指针变量p1 1000 p、p1、*p、*p1的值。 指针变量q 0 例程
7.2.2 二维数组与指针
1.二维数组元素在内存中的存放方式
(1)二维数组元素在内存按行顺序存放 (2)可用指针变量来访问二维数组元素。
例如:
int a[3][3];
【例7.7】用指针变量输出二维数组 各元素的值。例程
2.二维数组行首地址
在二维数组a中: (1)第i行首地址(即第i行第0列元素地址):用a[i]表 示,a[i]=&a[i][0] (2)元素a[i][j]的地址:用a[i]+j来表示,而元素a[i]][j]的 值为:*(a[i]+j)。 【例7.8】定义一个3行3列 数组,输出每行的首地址 及所有元素值。 例程
7.3.2 数组与指针作为函数参数
由于数组名为数组的起始地址,当把数组名作为 函数参数时,其作用与指针相同,均为传地址。数组 与指针作为函数参数有四种情况: (1)函数的实参为数组名,形参为数组。 (2)函数的实参为数组名,形参为指针变量。 (3)函数的实参为指针变量,形参为数组。 (4)函数的实参为指针变量,形参为指针变量。
7.1 指针与指针变量
7.1.1 指针的概念
( 1 )指针:系统为变量、数组、函数等 分配内存的首地址称为指针。 ( 2 )指针变量:用于存放指针(内存首 地址)的变量称为指针变量。
7.1.2 指针变量的定义与引用
1.指针变量的定义
〔存储类型〕<类型> *<指针变量名1> 〔,*<指针变量名2>,…, *<指针变量名n>〕;
(1)分配内存 (2)初始化赋值含义 (3)赋值方式 (4)输入/输出方式 (5)值的改变
字符数组与字符型指针变量的区别小结
项目 (1)分配内存 字符数组s[100] 分配100个单元 指针变量pc 分配4个单元
(2)赋值含义 字符串放入数组存储空间 (3)赋值方式 (4)输入/输出 只能逐个元素赋值 cin>>s; cout<<s;
2.函数调用格式
函数名(&变量,…) 或: 函数名(指针变量 ,…)
3.实参与形参的传送方式
传地址
指针变量作为函数参数时实参与形参的传送方式
用指针变量作为函数参数时,传送给函数的是 变量地址或指针地址,所以为传地址方式。由于传 送的是变量地址,所以可直接对函数内指针变量所 指数据进行修改,并返回修改后的值。即:传地址 可对实参单元进行修改,并返回修改值。 当函数需要返回多个参数值时,可使用指针变量 作为参数来实现。而传值方式的函数调用,只能返 回一个函数值,其形参值是无法返回的。
7.2.3 字符串与指针
1.字符串与字符串指针
(1)字符串指针:是字符串的首地址; (2)字符串指针变量:存放字符串元素地址的变量; (3)字符串指针变量定义格式: char *<指针变量>=“字符串”; (4)字符串指针变量的引用 【例7.10】用字符串指针变量实现字符串拷贝。例程
2.字符型指针变量与字符数组的区别
指针变量的算术运算
(2)自减运算 格式:<指针变量>――; 作用:指针变量指向上一元素,即: <指针变量>=<指针变量>―sizeof(<指针变量类型>) 自加运算和自减运算既可后置,也可前置。 (3)指针变量加n运算 格式: <指针变量>=<指针变量>+n; 作用:将指针变量指向下n个元素的运算,即: <指针变量>=<指针变量>+sizeof(<指针变量类型>)*n