北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 指针

C语言程序设计 第8章指针
1 第8章 指 针 C 语言程序设计 北京科技大学 计算机系

第8章指针 8.1指针和指针变量 8.2指针与数组 8.3指针与函数 2021/2/21
2021/2/21 2 8.1 指针和指针变量 8.2 指针与数组 8.3 指针与函数 第8章 指针

81指和指变量 811指针和指针变量的概念 变量的两个物理意义 2000 001 变量的内容 loat x, 2002 2003 2004 变量的地址 2005 2021/2/21
2021/2/21 3 8.1 指针和指针变量 main() {float x; int y; … } 8.1.1 指针和指针变量的概念 变量的两个物理意义 2000 2001 2002 2003 2004 2005 … x y 变量的内容 变量的地址

81指和指变量 811指针和指针变量的概念 InaRi 利用变量名 [int a,b, ci 52000 存取数据的方式 E2001 b=8:直接将整刻为“直接存取 32002 ”方式。 2003 直接将 82004 直接将变量a、b的值 2005 取出,相加后存入变量c 2021/2/21
2021/2/21 4 8.1 指针和指针变量 main() {int a,b,c; a=5; b=3; c=a +b; … } 8.1.1 指针和指针变量的概念 2000 2001 2002 2003 2004 2005 a b c 5 直接将整数5 存入变量 a 3 直接将整数3 存入变量 b 8 直接将变量 a、b 的值 取出,相加后存入变量 c 利用变量名 存取数据的方式 称为“直接存取 ”方式

81指和指变量 811指针和指针变量的概念 2000 5 c语言 main E2001 还提供了对{inta=5,b=3,c,和; 3002 内存单元的D &c 2003 米p=a+b; 31= 21a 2004 ●变量的地址称为变量的指针 8 2005 ●存放地址的变量称为指针变量 2006 2004 2007 a和b相加的结果(*p=a+b)存放 到变量p所指向的内存单元中去。 此时c称为指针变量p的目标变量。L2004 2021/2/21
2021/2/21 5 C 语言 还提供了对 内存单元的 “间接存取” 方式 p 2000 2001 2002 2003 2004 2005 2006 2007 a b c 5 3 2004 a和b相加的结果(*p=a+b)存放 到变量p所指向的内存单元中去。 此时c称为指针变量p的目标变量。 p 2004 c p=&c 8 main() {int a=5,b=3,c,*p; p = &c; *p = a + b; … } 8.1 指针和指针变量 8.1.1 指针和指针变量的概念 ●变量的地址称为变量的指针 ●存放地址的变量称为指针变量

81指和指变量 8.12指针变量的定义 2000 E2001 指针变量定义的形式指针变量初始化 2002 main maino 2000 2003 lint a, *p I int a, p=&a 2004 float x, q float x,*q=&x; 2005 p && a 2006 2007 2008 2004 2009 2021/2/21
2021/2/21 6 main() { int a,*p=&a; float x,*q=&x; … } 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 a p x q 2004 8.1 指针和指针变量 8.1.2 指针变量的定义 main() 2000 {int a,*p; float x,*q; p = &a; q = &x; … } 指针变量定义的形式 指针变量初始化

81指和指变量 813指针的基本运算 2000 5 间接存取运η E2001 赋值运犷 2002 maino maino 2000 2003 [int a, p=&a tint a, *p; 2004 float x, q=&x; float x, *kg: 2005 p=5; p=&a 2006 printf(a+3=%dn",p+3):q&x 2007 2008 2004 2009 =&a: 2021/2/21
2021/2/21 7 main() { int a,*p=&a; float x,*q=&x; *p = 5; printf("a+3=%d\n",*p+3); … } 间接存取运算 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 a p x q 2004 8.1 指针和指针变量 8.1.3 指针的基本运算 2000 ×*p = &a; main() {int a,*p; float x,*q; p = &a; q = &x; … } 赋值运算 5

81指和指变量 8 首针变量的 【例81】输入a、b两个整数, 使用指针变量按大小顺序输出 6 8 这两个整数。 p1=&a: p2=&b scanf(”%d%d”,pl,p2); if(*p1<*p2) I p=pl: p1=p2: p2=p: I printf("a=%d, b=%d\n",a, b) printf (" max=%d, min=%d\n",*p1. *p2):a=b, b: max=8. min=6 2021/2/21
2021/2/21 8 方法1:目标变量值不变,改变指针变量的 指向求解。 main( ) { int a,b,*p1,*p2,*p; p1=&a;p2=&b; scanf(″%d%d″ ,p1,p2); if(*p1<*p2) { p=p1; p1=p2; p2=p;} printf(″a=%d,b=%d\n″,a,b); printf(″max=%d,min=%d\n ″ ,*p1,*p2); } a b p1 p2 p 6 8 a=6,b=8 max=8,min=6 8.1 指针和指针变量 【例8.1】输入a、b两个整数, 使用指针变量按大小顺序输出 这两个整数

81指和指变量 方法2:利用指针变量直接改变目标变量的值a、*p1b、*p2 求解。 maino t int a, b, t, *pl, p2 p1=&a; p2=&b: p 2 scanf(”%d%d”,pl,p2); if(*p1<*p2) t t=*p1;*p1=*p2;*D2=t;} 6 printf ( "a=%d, b=%d\n",a, b) a=8,b 6 printf("max=%d, min=d\n",*pl, *p2) max=8. min=6 2021/2/21
2021/2/21 9 方法2:利用指针变量直接改变目标变量的值 求解。 main() { int a,b,t,*p1,*p2; p1=&a;p2=&b; scanf(″%d%d″ ,p1,p2); if(*p1<*p2) { t=*p1; *p1=*p2; *p2=t;} printf(″a=%d,b=%d\n″,a,b); printf(″max=%d,min=%d\n ″ ,*p1,*p2); } a、*p1 b、*p2 p1 p2 t 6 8 a=8,b=6 max=8,min=6 8.1 指针和指针变量 6 8 6

81指和指变量 10 813指针的基本运算 →a[010 1404 指针的加微运 1405 20406 指针加减运算要点: 407 ①只有当指针变量指向数组时指针的加减 a[2 运算才有意义 30F408 ②指针变量可加减一个整型表达式。如: 1409 pl++、p2+3、p2-、p2-2 40 1410 ③指针的加减运算是以基类型为单位(即 sizeof(类型))的 ④两个指针变量不能作加法运算,只有当 a45012 两个指针变量指向同一数组时,进行指针变 1413 量相减才有实际意义。如:p2p1。 2021/2/21
2021/2/21 10 指针的加减运算 8.1 指针和指针变量 8.1.3 指针的基本运算 main() {int a[]={10,20,30,40,50},*p1,*p2; p1=p2=a; printf(″p1=%u,*p1=%d\n″ ,p1,*p1); p2+=3; printf(″p2=%u,*p2=%d\n″ ,p2,*p2); } P1=404,*p1=10 P2=410,*p2=40 404 405 406 407 408 409 410 411 412 413 a[0] a[1] a[2] a[3] a[4] 30 20 10 40 50 p1 p2 指针加减运算要点: ① 只有当指针变量指向数组时指针的加减 运算才有意义。 ② 指针变量可加减一个整型表达式。如: p1++、p2+3、p2--、p2-2。 ③ 指针的加减运算是以基类型为单位(即 sizeof(类型))的。 ④ 两个指针变量不能作加法运算,只有当 两个指针变量指向同一数组时,进行指针变 量相减才有实际意义。如:p2-p1
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 函数与预处理命令.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 数组.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 循环结构程序设计.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 选择结构程序设计.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 顺序结构程序设计.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 C语言基础.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第1章 预备知识.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 文件.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第七章 保真度准则下的信源编码.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第六章 波形信源和波形信道.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第五章(5-3)循环码.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第五章(5-5)纠错编码的基本思想.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第五章 有噪信道编码.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第三章 离散信道及其信道容量.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第二章 离散信源及其信息测度.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第一章 绪论.ppt
- 西北大学信息科学与技术学院:《信息与编码》课程教学课件(PPT讲稿)第四章 无失真信源编码.ppt
- 《计算机视觉》课程教学资源(教材)目录.doc
- 《计算机视觉》课程教学资源(教材)第九章 颜色视觉.doc
- 《计算机视觉》课程教学资源(教材)第八章 纹理.doc
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第9章 结构体与共用体.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第一章 多媒体技术概论 1.1 多媒体技术的基本概念 1.2 多媒体技术的应用状况(万麟瑞).ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第一章 多媒体技术概论 1.3 多媒体技术标准.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第二章 媒体信息处理技术 2.1 音频处理技术.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第二章 媒体信息处理技术(2.2)图像处理技术.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第二章 媒体信息处理技术(2.3)视频处理技术.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第三章 数据压缩技术 3.1 数据压缩的基本原理 3.2 数据压缩方法分类 3.3 常用压缩编码方法 3.3.1 信息熵编码.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第三章 数据压缩技术 3.3.2 预测编码.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第三章 数据压缩技术 3.3.3 变换编码 3.3.4 矢量量化编码.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第三章 数据压缩技术 3.4 图像压缩标准的混合编码.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第四章 光盘存储技术 4.1 光盘技术的发展与应用 4.2 CD_ROM光盘系统 4.2.1 光盘制作原理与方法 4.2.2 CD_ROM的物理存储格式.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第四章 光盘存储技术 4.2.4 CD_ROM驱动器工作原理 4.3 CD_I交互式光盘系统.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第五章 多媒体网络与通信技术 5.1 概述 5.2 可视电话系统 5.3 多媒体会议系统.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第五章 多媒体网络与通信技术 5.4 分布式CSCW系统.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第六章 多媒体数据库与超文本技术 6.1 MDBS体系结构 6.2 多媒体数据模型.ppt
- 南京航空航天大学:《多媒体技术及其应用》课程教学资源(PPT课件讲稿)第六章 多媒体数据库与超文本技术 6.3 超文本系统的基本概念.ppt
- 哈尔滨工业大学:《智能建筑网络通信技术》讲义.ppt
- 《数据库原理》第1章 绪论.ppt
- 《数据库原理》第2章 数据模型.doc
- 《数据库原理》SS2K3AccessMeth.ppt