虎贲c语言第八章

上传人:子 文档编号:52160160 上传时间:2018-08-18 格式:PPT 页数:32 大小:318KB
返回 下载 相关 举报
虎贲c语言第八章_第1页
第1页 / 共32页
虎贲c语言第八章_第2页
第2页 / 共32页
虎贲c语言第八章_第3页
第3页 / 共32页
虎贲c语言第八章_第4页
第4页 / 共32页
虎贲c语言第八章_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《虎贲c语言第八章》由会员分享,可在线阅读,更多相关《虎贲c语言第八章(32页珍藏版)》请在金锄头文库上搜索。

1、第八章 指针_ 虎贲讲师:路谨铭_章节知识点:8.1 地址和指针的概念 8.2 指针变量 8.3 指针与数组 8.4 指针与字符串 8.5 指针的指针 8.6 指针与函数 笔试考点分布知识识点所占分值值考试试概率难难易程度 指针变量4分100% 指针与一维数组4分80% 指针与二维数组2分70% 字符串指针2分80% 字符数组与字符指 针的区别2分15%指针数组2分100% 熟练掌握指针变量 作函数参数4分80%数组名作函数参数2分45% 关于返回指针值的 函数2分33%函数指针2分20%机试考点分布与分析知识识点所占分值值考试试概率难难易程度 指针的定义10分90% 指针与一维数组5分80%

2、8.1 地址和指针的概念10001001100210031004整型x字符y图8-18.1.1 内存单元的地址计算机硬件系统的内存储器中,拥有 大量的存储单元。一般把存储器中的若干 个字节称为一个存储单元。为了方便管理 ,必须为每一个存储单元编号,这个编号 就是存储单元的地址。每个内存单元都有 一个惟一的地址,根据一个内存单元的地 址即可准确地找到该内存单元。8.1.2 指针的概念指针其实就是地址。一个变量在内存单元的首地址称为该变量的 “指针”,通过变量的指针可以找到该变量所占用的内存单元。10001001100210031004整型x字符y图8-1例如:int x,y;指针变量,就是专门用

3、来存放内存地址的变量。它 是一种特殊的变量,它的特殊之处就在于它的变量值是地 址(即指针),而一般的变量的值的是普通的数据。8.2.1 指针变量的定义C语言规定所有变量在使用前必须先定义,指针变量 也不例外。指针变量的定义形式如下:类型名 *指针变量名;例如: int *p , *q;8.2 指针变量float *s; char *t; 8.2.2 指针变量的引用C 语言中对指针变量的引用是通过两个运算符“ int *p; x = 10; p = y = *p;printf(“y=%dn”, y); 100410011008100810021003100510061000图8-21004100

4、11008100810021003100510061000p图8-3P8.2.3 指针变量的初始化指针变量在使用之前必须对其进行初始化,使 指针变量指向一个确定的内存单元。一般形式 为:类型说明符 *指针变量名初始地 址值; 例如: int a = 10; int *p = /* 定义p为一个指针变量,且指向变量a */1、赋值运算指针变量的赋值运算只能在同一数据类型之间进行,有 以下几种形式。 int *p1, *p2, a, s5; int *p1 = /* 指针变量初始化赋值 */ p2 = /* 把变量a的地址赋给指针变量p2 */ p1 = p2; /* p1和p2都是指针变量,把p

5、2的值赋给p1 */8.2.4 指针的运算2、算术运算指针进行算术运算主要是对指针变量加上或减 去一个整数,这样会使指针变量指向相邻的存储单 元,这其实就是指针移动。只有指针变量指向一片 连续的存储单元时,指针的移动才有意义。 例如:在内存中有一片地址连续的存储单元,基类 型为int类型的指针变量p指向地址为1002的存储单 元,若执行了操作p = p + 1, 则指针变量p指向了 首地址为1006的存储单元, 3、关系运算指针的关系运算其实就是比较地址值的大小。 设p、q是指向同一数据集合的指针变量,如果pq的 值为真,则表明p指针变量所指向的元素在q指针变 量所指向的元素之后;反之则在之前

6、,章节知识点:8.1 地址和指针的概念 8.2 指针变量 8.3 指针与数组 8.4 指针与字符串 8.5 指针的指针 8.6 指针与函数 8.3 指针与数组8.3.2 指针与一维数组8.3.1 指针与一维数组8.3.1 指针与一维数组C语言规定,数组名代表数组的首地址。一维数组中,第一 个元素的地址即为该数组的起始地址。1、建立指针变量与一维数组的联系例如,要创建一个指向某个 int型一维数组a的指针变量pa ,可先定义: int a6, *pa; 然后对指针变量赋值: pa=a;或pa=p = 指针变量p指向了数组元素a0,因此可以使用访问运 算符“*”来引用变量a0。2)通过数组的首地址

7、引用数组元素int a5;由于a是数组名,表示首地址,我们可以把a当做一个 指针常 量。因此*a等价于a0;*(a+1)等价于a1,同 样,a等价于a+1等价于 p = a; 我们可以使用p0来表示p指针指向的内存单元,使用p1 标示p指针指向的内存单元的下一个内存单元。也就是说可以 用p0表示a0,p1表示a1。因此,对数组元素ai可以有4种等价的引用方法:ai;pi;*(a+i);*(p+i)。 对应的,ai的地址也有4种等价的方式: a02a10a11a12a01a0 a1a a+1 a00二维数组的构成二维数组元素的地址可以由表达式 如: int *p3;p0p1p2 定义指针数组in

8、t *p3,a32,i,j;p0p1p2a21 a20 a11 a10 a01 a00 指针数组指向二维数组for(i=0;i main( ) int a=10,*pa,*ppa; pa = ppa = printf(“a=%d,*pa=%d,*pa=%dn“,a,*pa,*ppa); 8.6 指针与函数8.6.1 函数指针变量在语言中,一个函数也是占用一段连续的内存空间, 而函数名和数组名一样也表示该函数所占内存区的首地址(或 者叫函数的入口),所以函数名也是一个地址常量。那么此时 我们也可以把函数的这个首地址赋予一个指针变量,使该指针 变量指向该函数。我们把这种指向函数的指针变量称为“函数

9、 指针变量”。函数指针变量定义的一般格式:类型说明符 (*指针名)();“类型说明符”表示函数的返回值类型。(* 指针名)表示 “*”后面的变量是定义的指针变量。例如: int (*p)( );例8.7:本例用来说明用指针形式实现对函数调用的方法。 #include int he(int a,int b) int sum;sum=a+b;return sum; main() int he(int a,int b);int (*p)();int x,y,z;p=he;scanf(“%d%d“,z=(*p)(x,y);printf(“he=%d“,z); 我们知道对于函数而言,它的返回值有字符型、

10、整 型或者浮点型,这节课我们将介绍函数返回值类型为指针型 数据的函数。这种函数的一般格式为:类型说明符 *函数名(参数表列); 类型说明符表示函数的返回指针所指的数据的数据类型 。 如:int *p(int x,int y)8.6.2 指针型函数在C语言中,运用指针是一种复杂但是非常高效的方式, 而且指针可以解决复杂问题。学完本章,我们应该学会: 指针变量的定义 (1)int *p p是一个指针,指向一个整型数据。 (2)int *p() p是一个函数,该函数返回值为指针类 型。 (3)int (*p)() p是一个指针,指向一个函数。 (4)int *p p是一个数组,该数组元素均为指向整型数据 的指针。 (5)int (*p) p是一个行指针,该行指针指向一个二 维数组,指针p每移动一次,将跨过一行。 。本章总结:2、指针与数组之间的关系。(1)指针与一维数组。(2)指针与二维数组。(3)指针与字符数组。 3、指针与函数之间的关系。(1)函数指针。(2)指针函数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号