海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十章 指针

语言序设计 第十章指针 任课老师:台安
第十章 指针 任课老师:台安

第十章指针 10.1指针的概念 令10.2变量的指针和指向变量的指针变量 10.3数组的指针和指向数组的指针变量 10.4字符串的指针和指向字符串的指针变量 10.5函数的指针和指向函数的指针 令10.6返回指针值的函数 10.7指针数组和指向指针的指针 10.8指针数据小结 上一页下一页 返回
上一页 下一页 返回 第十章 指针 ❖ 10.1 指针的概念 ❖ 10.2 变量的指针和指向变量的指针变量 ❖ 10.3 数组的指针和指向数组的指针变量 ❖ 10.4 字符串的指针和指向字符串的指针变量 ❖ 10.5 函数的指针和指向函数的指针 ❖ 10.6 返回指针值的函数 ❖ 10.7 指针数组和指向指针的指针 ❖ 10.8 指针数据小结

§10.1指针的概念 令变量的两个概念: 对应的地址(内存单元) 对应的值(具体的数值) 变量的地址=变量的指针指向变量在内存中的 存储地址 两种访问变量a的方式: 令1直接访问.通过变量a找到棋对应的存储地址。 令2间接访问.把变量a的地址放到另一个变量b中,通过变 量b来访问变量a。变量b就称为指针变量。 令指针变量:存放变量的地址的变量 令指钍类型:指针所指对象的数据类型 上一页下一页 返回
上一页 下一页 返回 ❖ 变量的两个概念 : ❖ 对应的地址 (内存单元) ❖ 对应的值 (具体的数值) ❖ 变量的地址=变量的指针,指向变量在内存中的 存储地址。 ❖ 两种访问变量a的方式: ❖ 1 直接访问. 通过变量a找到棋对应的存储地址。 ❖ 2 间接访问. 把变量a的地址放到另一个变量b中,通过变 量b来访问变量a。变量b就称为指针变量。 ❖ 指针变量:存放变量的地址的变量 ❖ 指针类型:指针所指对象的数据类型. §10.1 指针的概念

例如: 定义指针变量 int i,j,k, *ip, jp, kp; 2000 i=3;j=6;k=ij; 2002 ip=&i; 给指针变量赋值 2004 k kp=&k * kp=*ip+ jp; 30102000 p 30122002 Jp 给指针变量所 30142004 p 指对象赋值 上一页下一页 返回
上一页 下一页 返回 例如: int i, j, k, *ip,*jp,*kp; i=3; j=6; k=i+j; ip=&i; jp=&j; kp=&k; *kp=*ip+*jp; 3 6 9 …. 2000 2002 2004 2000 2002 2004 3010 3012 3014 i j k ip jp kp 定义指针变量 给指针变量赋值 给指针变量所 指对象赋值

§102变量的指针和指向变量的指针变量 令变量的指针:就是变量的地址 如i所对应的内存地址是2000,则i的指针就 是2000 令指针变量:用来存放变量地址的变量。 nt 1=3 31002000 ☆int* 2000 ip=&i p p所对应的地址是3010,对应的内容是20002000就是i所对应的 地址,因此,j是存放变量i的地址的变量。若jp是存放变量i的 地址的指针变量,则*是指针变量ip所指的对象(即变量i) 上一页下一页 返回
上一页 下一页 返回 §10.2 变量的指针和指向变量的指针变量 ❖ 变量的指针:就是变量的地址。 如 i 所对应的内存地址是2000,则 i 的指针就 是2000; ❖ 指针变量:用来存放变量地址的变量。 ❖ int i=3; ❖ int *ip; ❖ ip = &i ❖ 2000 3 ip i 2000 *ip 3100 ip所对应的地址是3010,对应的内容是2000, 2000就是 i 所对应的 地址,因此,ip是存放变量 i 的地址的变量。 若ip 是存放变量i 的 地址的指针变量, 则 *ip是指针变量 ip所指的对象(即变量 i )

1021指针变量的定义 令指针变量在使用前必须先定乂,且赋值, 以便使其指向特定类型的变量 指针变量的定义形式 类型标识符*标识符 其中类型标识符:指出指向何种数据类型的 变量 标识符:表示指针变量名 上一页下一页 返回
上一页 下一页 返回 10.2.1指针变量的定义 ❖ 指针变量在使用前必须先定义,且赋值, 以便使其指向特定类型的变量。 ❖ 指针变量的定义形式: ❖ 类型标识符 * 标识符 ❖ 其中:类型标识符:指出指向何种数据类型的 变量 ❖ 标识符:表示指针变量名

例如: nt 说明 nt *pl, * p2 In 1定义时指针变量名前必须 l=&i;p2=& 以‘*’开头,指出该变量 是 pl=8;*p2=12 指针变量 float *p3 2.引用时,指针变量前加 char* p4; *’表示指针变量所指 向的 对象(即变量 (注意两者的区别) 3指针变量一经定义就只可 指向类型的变里。 如县能指向啦变
上一页 下一页 返回 例如: int i, j; int *p1, *p2; p1=&i; p2=&j; i=3; j=5; *p1=8; *p2=12; float * p3; char * p4; 说明: 1.定义时指针变量名前必须 以‘ *’开头,指出该变量 是 指针变量。 2.引用 时 ,指针变量前加 ‘ * ’ 表示指针变量所指 向的 对象(即变量 ) (注意两者的区别)。 3.指针变量一经定义就只可 指向同类型的变量。 如:p3只能指向实型变量

10,22指针变量的引用 令通常,是将变量的地址赋给指针变量,但在 Turbo c中,整型数据(十进制、十六进制、八进制) 也可赋给指针变量, 如:int*pl pl=100; printf( %od\ n”,*p1) 令指针变量有两种运算符: 令&:取地址运算符 如:pl=&i 令*:取所指变量运算符。或者访问目标的运算符 如:*p1,它与i等价 上一页下一页 返回
上一页 下一页 返回 10.2.2 指针变量的引用 ❖ 通常,是将变量的地址赋给指针变量,但在Turbo c中,整型数据(十进制、十六进制、八进制) 也可赋给指针变量, ❖ 如: int *p1; ❖ p1=100; ❖ printf(“%d\ n”,* p1); ❖ 指针变量有两种运算符: ❖ &:取地址运算符. ❖ 如:p1=&i; ❖ * :取所指变量运算符。或者访问目标的运算符 ❖ 如:* p1, 它与i 等价

10,22指针变量的引用 编译时,系统将内存单元分配给变量后,程序执行时对 变量的操作实际上就是根据变量名査找与之对应的变 量的地址,然后对地址中的数据进行操作。 1.直接访问 k 冷2.间接访问*kp=*ip+*jp 令这里:ip,jp,kp:就称为指针变量,其值是另一个变量所对 应的内存地址。 上一页下一页 返回
上一页 下一页 返回 10.2.2 指针变量的引用 ❖ 编译时,系统将内存单元分配给变量后, 程序执行时对 变量的操作实际上就是根据变量名查找与之对应的变 量的地址,然后对地址中的数据进行操作。 ❖ 1.直接访问 ❖ k = i + j ❖ 2.间接访问 * kp = * ip + *jp ❖ 这里:i p, j p, k p:就称为指针变量,其值是另一个变量所对 应的内存地址

例:指针变量操作简例 令main() a=100,b=10 int a, b, pl, *p2 pl=100,*p2=10 令a=100:b=10 &a=fff&b=fff2 pI=&a; p2=&b; pl=fff, p2=fff2 &pl=fff0, &p2=ffee printf( a=%d, b=%od\ n a, b); printf(*p1=%d, * p2=%d n,,*pl, * p2) printf(" &a=%x, b=%,, &a, &b) printf( pl=%x, p2=%xn,, pl, p2); 令 printf((“&pl=%X,&p2=%X\n”,&pl,&p2) 上一页下一页 返回
上一页 下一页 返回 例: 指针变量操作简例 ❖ main( ) ❖ { int a, b, *p1, *p2 ; ❖ a=100; b=10; ❖ p1=&a; p2=&b; ❖ printf(“a=%d, b=%d\ n”,a, b); ❖ printf(“* p1=%d, * p2=%d\ n”, *p1, * p2); ❖ printf(“&a=%x,& b=%x\ n”,&a, &b); ❖ printf(“p1=%x, p2=%x\ n”, p1, p2); ❖ printf(“& p1=%x, &p2=%x\ n”, &p1, & p2); ❖ } a=100,b=10 *p1=100,*p2=10 &a=fff4,&b=fff2 p1=fff4,p2=fff2 &p1=fff0,&p2=ffee
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学资源:C语言输入输出函数(台安).ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第9章 串行扩展技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第8章 串行通信.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第7章 并行扩展技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第6章 定时器/计数器.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第5章 中断系统.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第4章 汇编语言程序设计.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第3章 8051指令系统.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第2章 单片机的结构原理与简单应用.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第1章 基础知识.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(PPT课件讲稿)第10章 应用系统设计及接口技术.ppt
- 清华大学:《单片机原理与应用技术》课程教材电子教案(期复习资料).doc
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第7章 汇编语肓 与C/C++的混合编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第6章 32位指令及其编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第5章 高级汇编语言程序设计.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第4章 基本汇编语言程序设计.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第3章 汇编语言程序格式.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第2章 8086的指令系统.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第1章 汇编语言基础知识.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)课程介绍(主讲:钱晓捷).ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十一章 结构体.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十二章 位运算.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第十三章 文件.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第一章 概述(主讲:台安).ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第二章 程序的灵魂—算法.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第三章 数据类型、运算符与表达式.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第四章 最简单的C程序设计—顺序程序设计.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第五章 选择结构程序设计.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第六章 循环控制.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第七章 数组.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第八章 函数.ppt
- 海南大学:《C语言程序设计》课程电子教案(PPT教学课件)第九章 编译预处理.ppt
- 《C语言》课程教学课件(PPT讲稿)第3章 C语言的基本程序设计.ppt
- 《C语言》课程教学资源(讲义)上机实验.doc
- 《C语言》课程教学课件(PPT讲稿)第5章 指针.ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 函数(1/2).ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 函数(2/2).ppt
- 《C语言》课程教学课件(PPT讲稿)第1章 概述.ppt
- 《C语言》课程教学课件(PPT讲稿)第2章 C语言的数据类型、运算符和表达式.ppt
- 《C语言》课程教学课件(PPT讲稿)第3章 C语言的基本程序设计.ppt