中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第7章 指针

第7章指 白雪飞 baixfaustc. edu.cn 中国科学技术大学电子科学与技术系 Dept of Elec. Sci. Tech, USTC Fal22003
白 雪 飞 baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系 Dept. of Elec. Sci. & Tech., USTC Fall, 2003 第7章 指 针

目录 指针概念 ●指针变量和指针运算 指向数组的指针 ●指向字符串的指针 指向函数的指针 返回指针值的函数 指针数组和指向指针的指针 C语言程序设计-第7章指针2
C语言程序设计 - 第7章 指针 2 目 录 ⚫ 指针概念 ⚫ 指针变量和指针运算 ⚫ 指向数组的指针 ⚫ 指向字符串的指针 ⚫ 指向函数的指针 ⚫ 返回指针值的函数 ⚫ 指针数组和指向指针的指针

指针( Pointer) 指针表示变量等的存储地址 ●使用指针可以获得紧凑、高效的代码 使用指针也可能使程序晦涩难懂 ●指针的使用灵活方便 指针操作容易出错且难以调试 指针与数组关系密切 C语言程序设计-第7章指针
C语言程序设计 - 第7章 指针 3 指针 (Pointer) ⚫ 指针表示变量等的存储地址 ⚫ 使用指针可以获得紧凑、高效的代码 ⚫ 使用指针也可能使程序晦涩难懂 ⚫ 指针的使用灵活方便 ⚫ 指针操作容易出错且难以调试 ⚫ 指针与数组关系密切

指针与地址 低地址 地址 2034H37H ■通过首地址和数 short s:/*0xA637*/ 2035HA6H 据类型可以访问 内存中某一数据308s[45 char c /*0x45*/ ■数据类型决定所 占用存储单元数42334 short *ps;/*0x2034*/ 4237H20H ●指针 ■就是地址 5702H88H char*pc;/*0x3088*/ ■和类型有关 5703H30H 高地址 C语言程序设计-第7章指针
C语言程序设计 - 第 7 章 指针 4 指针与地址 ⚫ 地址◼ 通过首地址和数 据类型可以访问 内存中某一数据 ◼ 数据类型决定所 占用存储单元数 ⚫ 指针◼ 就是地址 ◼ 和类型有关 3 7 H 4 5 H A 6 H . . . . . . . . . . . . . . . } s h o r t s ; / * 0 xA 6 3 7 * / c h a r c ; / * 0 x 4 5 * / } s h o r t * p s ; / * 0 x 2 0 3 4 * / } c h a r * p c ; / * 0 x 3 0 8 8 * / 3 4 H 低 地 址 高 地 址 2 0 H 8 8 H 3 0 H 2 0 3 4 H 2 0 3 5 H 3 0 8 8 H 4 2 3 6 H 4 2 3 7 H 5 7 0 2 H 5 7 0 3 H

指针变量和指针运 变量的指针和指针变量 指针变量的定义 。地址运算符和指针运算符 指针变量的引用 指针的运算 C语言程序设计-第7章指针5
C语言程序设计 - 第7章 指针 5 指针变量和指针运算 ⚫ 变量的指针和指针变量 ⚫ 指针变量的定义 ⚫ 地址运算符和指针运算符 ⚫ 指针变量的引用 ⚫ 指针的运算

变量的指针和指针变量 ●变量的指针 内存中存储某个变量的存储单元的首地址 ■指针(地址)实质上是一个整数(不是C的整型) ■可以通过变量的地址来间接的访问变量 指针变量 ■指针(地址)是一个数据,也可以用另一个变 量来存放,即指针变量 ■通过指针变量可以间接访问变量或内存数据 C语言程序设计-第7章指针6
C语言程序设计 - 第7章 指针 6 变量的指针和指针变量 ⚫ 变量的指针 ◼ 内存中存储某个变量的存储单元的首地址 ◼ 指针(地址)实质上是一个整数(不是C的整型) ◼ 可以通过变量的地址来间接的访问变量 ⚫ 指针变量 ◼ 指针(地址)是一个数据,也可以用另一个变 量来存放,即指针变量 ◼ 通过指针变量可以间接访问变量或内存数据

指针变量的定义 般形式 ■基类型*指针变量名; ●说明 “基类型”表示该指针指向的数据的类型 ■可以定义基类型为空类型void的指针变量 举例 int *pii ■char*pc1,c,*pc2 ■void*p; C语言程序设计-第7章指针7
C语言程序设计 - 第7章 指针 7 指针变量的定义 ⚫ 一般形式 ◼ 基类型 *指针变量名; ⚫ 说明 ◼ “基类型”表示该指针指向的数据的类型 ◼ 可以定义基类型为空类型void的指针变量 ⚫ 举例 ◼ int *pi; ◼ char *pc1, c, *pc2; ◼ void *p;

地址运算符( Address operator) 地址运算符& 获得操作数的地址(指针) ■单目运算符,自右向左结合,优先级较高 ■操作数应为各种类型的内存变量、数组元素 结构体成员等 ■操作数不能是表达式、常量、寄存器变量 ●举例 scanf("f &score)i ■inti,*p=&1; C语言程序设计-第7章指针8
C语言程序设计 - 第7章 指针 8 地址运算符 (Address Operator) ⚫ 地址运算符 & ◼ 获得操作数的地址(指针) ◼ 单目运算符,自右向左结合,优先级较高 ◼ 操作数应为各种类型的内存变量、数组元素、 结构体成员等 ◼ 操作数不能是表达式、常量、寄存器变量 ⚫ 举例 ◼ scanf("%f", &score); ◼ int i, *p=&i;

指针运算符( direction Operator) 指针运算符* 获得指针指向的内存数据 ■又称“间接访问运算符” 单目运算符,自右向左结合,优先级较高 ■操作数为具有指针(地址)意义的值 ●举例 ■inti,*p=&i; (*p)++;/*立++;*/ C语言程序设计-第7章指针9
C语言程序设计 - 第7章 指针 9 指针运算符 (Indirection Operator) ⚫ 指针运算符 * ◼ 获得指针指向的内存数据 ◼ 又称“间接访问运算符” ◼ 单目运算符,自右向左结合,优先级较高 ◼ 操作数为具有指针(地址)意义的值 ⚫ 举例 ◼ int i, *p=&i; (*p)++; /* i++; */

指针变量的引用 。指针变量也要“先赋值,后使用” 没有赋值的指针变量所存储的地址数据 是不确定的,对它的引用非常危险 对指针的赋值要注意类型匹配,必要时 可以使用强制类型转换,但要慎重使用 *p可以用于与指针p的基类型相同类型 的变量可以使用的任何场合 ●指针变量可以作为函数的参数 C语言程序设计-第7章指针
C语言程序设计 - 第7章 指针 10 指针变量的引用 ⚫ 指针变量也要“先赋值,后使用” ⚫ 没有赋值的指针变量所存储的地址数据 是不确定的,对它的引用非常危险 ⚫ 对指针的赋值要注意类型匹配,必要时 可以使用强制类型转换,但要慎重使用 ⚫ *p可以用于与指针p的基类型相同类型 的变量可以使用的任何场合 ⚫ 指针变量可以作为函数的参数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第6章 预处理.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第5章 函数.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第4章 数组.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第3章 C语言的基本语句和程序结构设计.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第2章 数据类型、运算符和表达式.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)概述(白雪飞).ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第10章 文件操作.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第1章 C语言的程序结构(白雪飞).ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源_实验指导.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源_作业习题.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第09章 预处理命令.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第08章 函数.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第07章 数组.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第06章 循环控制.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第05章 逻辑运算和判断选取控制.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第04章 最简单的C程序.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第03章 数据类型、运算符与表达式.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第02章 算法——程序的灵魂.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第01章 概述(孙友仓).ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第13章 文件.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第8章 结构体.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第9章 位运算.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源_精品课程申报表.doc
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源_教学大纲.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源_实验大纲.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验一 顺序程序设计与调试.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验二 分支程序设计.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验三 循环程序设计.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验四 子程序设计.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验五 并行接口芯片8255的应用.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验六 中断控制器8259 的应用.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验七 定时、计数器8253的应用.pdf
- 西安石油大学:《微机原理与应用 Principle and Application of Microcomputer》精品课程教学资源(实验讲义)实验八 接口综合应用.pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(教学大纲)《数字逻辑(Ⅰ)》课程教学大纲.pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(教学大纲)《数字逻辑(Ⅱ)》课程教学大纲.pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(打印版)数字逻辑(Ⅰ)实验大纲.pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(打印版)数字逻辑(Ⅰ)实验指导书(学生用).pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(打印版)数字逻辑(Ⅱ)实验指导书.pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(打印版)数字逻辑(Ⅱ)实验指导书(学生用).pdf
- 西安石油大学计算机学院:《数字逻辑 Digital Logic》精品课程教学资源(习题参考)第一章 数制.doc