《计算机软件技术基础》第12章 指针

第十二章指针
第十二章 指针

12.1指针与指针变量 如:inta=1,b=2; 2000 变量a float x=34,y=4.5;2012变量b double m3. 124 2004 3.4 变量x char chI='a‘,ch2=b’; 2008 4.5 变量y 个地址唯一指向一个内存变 量,我们称这个地址为变量的 3.124 变量m 2012 指针。如果将变量的地址保存2020 变量chl 在内存的特定区域,用变量来 2021 变量ch2 存放这些地址,这样的变量就 是指针变量,通过指针对所指 向变量的访问,也就是一种对 变量的“间接访问”。 第十二章指针
第十二章 指针 12.1 指针与指针变量 如:int a=1, b=2; float x=3.4, y = 4.5 ; double m=3.124; char ch1='a‘, ch2='b'; 1 2 4.5 3.4 3.124 a b 2000 2002 2004 2008 2012 2020 2021 变量a 变量b 变量x 变量y 变量m 变量ch1 变量ch2 一个地址唯一指向一个内存变 量,我们称这个地址为变量的 指针。如果将变量的地址保存 在内存的特定区域,用变量来 存放这些地址,这样的变量就 是指针变量,通过指针对所指 向变量的访问,也就是一种对 变量的“间接访问

121指针与指针变量 设一组指针变量pa、pb、px、py、pm、pchl、pch2, 分别指向上述的变量a、b、x、y、m、chl、ch2,指针变 量也同样被存放在内存,二者的关系如图: 10002000pa 2001变量a 10022002pb 2002 2 变量b 0042004px 10062008py 2004 3.4 变量x 10082012p 10102020pch 2008 4.5 变量y 1012202lpch2 1014 1016 3.124 变量m 2012 2020 变量ch 021 变量ch2 计二章′指针
第十二章 指针 1 2 4.5 3.4 3.124 a b 2000 2002 2004 2008 2012 2020 2021 变量a 变量b 变量x 变量y 变量m 变量ch1 变量ch2 1012 pa 1004 2012 2000 2002 2004 2008 2020 2021 1000 1002 1006 1008 1010 1014 1016 pb px py pm pch1 pch2 设一组指针变量pa、pb、px、py、pm、pch1、pch2, 分别指向上述的变量a、b、x、y、m、ch1、ch2,指针变 量也同样被存放在内存,二者的关系如图: 12.1 指针与指针变量

122指针变量的定义与引用 、指针变量的定义 ■指针定义的格式:类型说明符*指针名; ■*表示这是一个指针变量, 变量名即为定义的指针变量名; 类型说明符表示本指针变量所指向的变量的数 据类型,也就是说一个指针变量只能指向同 类型的变量 如:int*p1; 表示p是一个指针变量,它的值是某个整型 变量的地址。或者说p1指向一个整型变量。至 于p1究竟指向哪一个整型变量,应由向p1赋予 的地址来决定。 第十二章指针
第十二章 指针 ◼ 指针定义的格式: 类型说明符 *指针名; ◼ *表示这是一个指针变量, 变量名即为定义的指针变量名; 类型说明符表示本指针变量所指向的变量的数 据类型,也就是说一个指针变量只能指向同一 类型的变量。 如:int *p1; 表示p1是一个指针变量,它的值是某个整型 变量的地址。或者说p1指向一个整型变量。至 于p1究竟指向哪一个整型变量,应由向p1赋予 的地址来决定。 12.2 指针变量的定义与引用 一、指针变量的定义

122指针变量的定义与引用 二、指针变量的赋值 赋值形式:&变量名; &:取地址符 8a表示变量a的地址,&b表示变量b的地址。变 量本身必须预先说明。 ■指针变量同普通变量一样,使用之前不仅要定 义说明,而且必须赋予具体的值。未经赋值的 指针变量不能使用,否则将造成系统混乱,甚 至死机。 指针变量的赋值只能赋予地址,决不能赋予任 何其它数据,否则将引起错误。 第十二章指针
第十二章 指针 ◼ 赋值形式: & 变量名; &:取地址符 &a表示变量a的地址,&b表示变量b的地址。变 量本身必须预先说明。 ◼ 指针变量同普通变量一样,使用之前不仅要定 义说明,而且必须赋予具体的值。未经赋值的 指针变量不能使用,否则将造成系统混乱,甚 至死机。 ◼ 指针变量的赋值只能赋予地址,决不能赋予任 何其它数据,否则将引起错误。 12.2 指针变量的定义与引用 二、指针变量的赋值

122指针变量的定义与引用 二、指针变量的赋值 设有指向整型变量的指针变量p,如要把整型变量a的地 址赋予p可以有以下两种方式: 1)指针变量初始化的方法 int a: int*p=&a 2)赋值语句的方法 int int“p; &a; 不允许把一个数赋予指针变量,下面的赋值是错误的: int"p p=1000; ■被赋值的指针变量前不能再加“”说明符,如写为 p=&a也是错误的。 第十二章指针
第十二章 指针 设有指向整型变量的指针变量p,如要把整型变量a 的地 址赋予p可以有以下两种方式: 1)指针变量初始化的方法 int a; int *p=&a; 2)赋值语句的方法 int a; int *p; p=&a; ◼ 不允许把一个数赋予指针变量,下面的赋值是错误的: int *p; p=1000; ◼ 被赋值的指针变量前不能再加“*”说明符,如写为 *p=&a 也是错误的。 12.2 指针变量的定义与引用 二、指针变量的赋值

122指针变量的定义与引用 二、指针变量的运算 ■指针变量只能进行赋值运算和部分算术运算及 关系运算。 (1)取地址运算符&:是单目运算符,其结合性为 自右至左,其功能是取变量的地址。 (2)取内容运算符*:是单目运算符,其结合性为自 右至左,用来表示指针变量所指的变量。在“共” 运算符之后跟的变量必须是指针变量。 ˉ注意:在指针变量说明中,“*”是类型说明符, 表示其后的变量是指针类型。而表达式中出现 的“☆”则是一个运算符用以表示指针变量所指 的变量。 第十二章指针
第十二章 指针 ◼ 指针变量只能进行赋值运算和部分算术运算及 关系运算。 (1)取地址运算符&:是单目运算符,其结合性为 自右至左,其功能是取变量的地址。 (2)取内容运算符*:是单目运算符,其结合性为自 右至左,用来表示指针变量所指的变量。在“*” 运算符之后跟的变量必须是指针变量。 ◼ 注意:在指针变量说明中,“*”是类型说明符, 表示其后的变量是指针类型。而表达式中出现 的“*”则是一个运算符用以表示指针变量所指 的变量。 12.2 指针变量的定义与引用 二、指针变量的运算

122指针变量的定义与引用 二、指针变量的运算 「例121指针变量程序举例。 maino i int*pl,*p2, il, 12; scanf(“%d,%d”,&il,&i2); l=&il;p2=&i2; printi(%d,%dⅦn”,*pl,*p2); p2=pl; printf(“d,%dm”,*p1,*p2); 若输入: 则输出: 3,5 3,3 第十二章指针
第十二章 指针 [例12.1]指针变量程序举例。 main( ) { int *p1, *p2,i1,i2; scanf(“%d, %d”,&i1,&i2); p1=&i1; p2=&i2; printf(“%d, %d\n”, *p1, *p2); p2=p1; printf(“%d, %d\n”, *p1, *p2); } 若输入: 3,5 则输出: 3,5 3,3 12.2 指针变量的定义与引用 二、指针变量的运算

122指针变量的定义与引用 二、指针变量的运算 「例122从键盘输入两个整数,按由大到小的顺 序输出。 main int*p1,“p2,a,b, scanf(ood, %d ", &a,&b); pl=&a; 2=b f(*p1<*p2) {t*p1;*p1=*p2;*p2=t;} printf(ood, %dn",a, b); 第十二章指针
第十二章 指针 [例12.2] 从键盘输入两个整数,按由大到小的顺 序输出。 main( ) { int *p1, *p2,a,b,t; scanf("%d ,%d ",&a,&b) ; p1=&a; p2=&b; if(*p1<*p2) { t=*p1;*p1=*p2;*p2=t;} printf("%d,%d\n",a,b) ; } 12.2 指针变量的定义与引用 二、指针变量的运算

123指针变量做函数的参数 ■使用指针类型做函数的参数,实际向函 数传递的是变量的地址。由于函数中获 得了所传递变量的地址,在该地址空间 的数据当函数调用结束后被物理地保留 下来。因此,如果希望函数间传递的是 地址,实参用变量的地址或指针变量, 形参用指针变量。 第十二章指针
第十二章 指针 ◼ 使用指针类型做函数的参数,实际向函 数传递的是变量的地址。由于函数中获 得了所传递变量的地址,在该地址空间 的数据当函数调用结束后被物理地保留 下来。因此,如果希望函数间传递的是 地址,实参用变量的地址或指针变量, 形参用指针变量。 12.3 指针变量做函数的参数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机软件技术基础》第11章 预处理.ppt
- 《计算机软件技术基础》第10章 数组.ppt
- 《中文版AutoCAD 2007实用教程》第9章 使用面域与图案填充.ppt
- 《中文版AutoCAD 2007实用教程》第8章 绘制与编辑复杂二维图形对象.ppt
- 《中文版AutoCAD 2007实用教程》第6章 控制图层显示.ppt
- 《中文版AutoCAD 2007实用教程》第5章 规划和管理图层.ppt
- 《中文版AutoCAD 2007实用教程》第4章 使用修改命令编辑对象.ppt
- 《中文版AutoCAD 2007实用教程》第3章 选择与夹点编辑二维图形对象.ppt
- 《中文版AutoCAD 2007实用教程》第1章 AutoCAD 2007入门基础p.ppt
- 《中文版AutoCAD 2007实用教程》第16章 使用块、属性块、外部参照和Autocad设计中心.ppt
- 《中文版AutoCAD 2007实用教程》第15章 编辑和渲染三维对象.ppt
- 《中文版AutoCAD 2007实用教程》第13章 三维绘制基础与简单图形的绘制.ppt
- 《中文版AutoCAD 2007实用教程》第12章 标注尺寸与编辑标注对象.ppt
- 《中文版AutoCAD 2007实用教程》第11章 标注基础与样式设置.ppt
- 《中文版AutoCAD 2007实用教程》第10章 创建文字和表格.ppt
- 大庆石油学院:《网络信息安全》讲义 (PPT课件).ppt
- 长江大学:《微型计算机技术及应用课件》第9章 DMA控制器82C37A和时间间隔定时器82C54(李华贵).ppt
- 长江大学:《微型计算机技术及应用课件》第8章 串并行通信接口技术(李华贵).ppt
- 长江大学:《微型计算机技术及应用课件》第7章 中断及中断控制器(李华贵).ppt
- 长江大学:《微型计算机技术及应用课件》第6章 微型计算机与外设之间的数据传输(李华贵).ppt
- 《计算机软件技术基础》第13章 结构体与共用体.ppt
- 《计算机软件技术基础》第14章 文件.ppt
- 《计算机软件技术基础》第1章 软件技术基础.ppt
- 《计算机软件技术基础》第2章 软件工程基础.ppt
- 《计算机软件技术基础》第3章 数据库技术基础.ppt
- 《计算机软件技术基础》第4章 计算机实用技术基础.ppt
- 《计算机软件技术基础》第5章 C语言基础.ppt
- 《计算机软件技术基础》第6章 基本数据类型.ppt
- 《计算机软件技术基础》第7章 运算符和表达式.ppt
- 《计算机软件技术基础》第8章 流程控制语句.ppt
- 《计算机软件技术基础》第9九章 函数.ppt
- 恒润科技:《MATLAB 基础与编程入门》第一章 MATLAB 基础.ppt
- 恒润科技:《MATLAB 基础与编程入门》第二章 MATLAB 图形基础.ppt
- 恒润科技:《MATLAB 基础与编程入门》第三章 MATLAB 编程入门.ppt
- 恒润科技:《MATLAB 基础与编程入门》第四章 文件输入与输出.ppt
- 恒润科技:《MATLAB 基础与编程入门》第五章 GUIDE 图形用户界面入门.ppt
- 《高级语言C++程序设计》教材教学实验讲义(第二版)实验1 熟悉和使用vc集成开发环境(IDE).doc
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第一章 绪论(主编:刘景、周玉龙).ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第七章 类与对象.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第三章 基本数据类型与基本运算.ppt