教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 资料大全 >

第8章 指针《C语言程序设计(第三版)》-电子教案

来源:网络收集 时间:2026-04-11
导读: 《C语言程序设计(第三版)》-电子教案-丁亚涛-7073 21世纪高等学校精品规划教材 第8章 指针 章 《C语言程序设计(第三版)》-电子教案-丁亚涛-7073 理解并掌握地址, 理解并掌握地址,指针和指针变量的概念 练掌握指针变量的定义, 练掌握指针变量的定义,初始化和

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

21世纪高等学校精品规划教材

第8章 指针 章

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

理解并掌握地址, 理解并掌握地址,指针和指针变量的概念 练掌握指针变量的定义, 练掌握指针变量的定义,初始化和引用方法 理解并掌握指针与数组的关系 了解指针数组和多级指针的概念 了解指针与函数的关系 学会在程序设计中正确应用指针解决实际问题

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

引言指针是C语言区别于其他程序设计语言的主要 指针是 语言区别于其他程序设计语言的主要 特征之一. 特征之一. 正确灵活地使用指针可以充分地发挥C语言的 正确灵活地使用指针可以充分地发挥 语言的 特点,提高某些程序的执行效率, 特点,提高某些程序的执行效率,更加方便地 表示和访问复杂的数据结构, 表示和访问复杂的数据结构,直接对内存操作 等.

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.1 指针的概念C语言允许使用变量名,数组名[下标 ,函数 语言允许使用变量名,数组名 下标], 语言允许使用变量名 下标 名等标识符来访问内存 指针其实就是在内存中的地址, 指针其实就是在内存中的地址,它可能是变量 的地址, 的地址,也可能是函数的入口地址 变量指针存储的地址是变量的地址 变量指针存储的地址是变量的地址 函数指针存储的地址是函数的入口地址 函数指针存储的地址是函数的入口地址 指针变量也简称为指针 是指它是一个变量, 也简称为指针, 指针变量也简称为指针,是指它是一个变量, 且该变量是指针类型的

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.2 指针变量的定义和初始化定义指针变量的形式如下: 定义指针变量的形式如下:指针变量名; 数据类型 *指针变量名 指针变量名

定义并初始化的形式为: 定义并初始化的形式为:数据类型 *指针变量名 变量名 指针变量名=&变量名 指针变量名 变量名;

例如: 例如:int a; int *p=&a;

或者: 或者:int a,*p=&a;

没有指向的指针变量的值是随机的,称为" 没有指向的指针变量的值是随机的,称为"野指 针".

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

指针变量与 变量的关系int a,*pa=&a;

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.3 指针运算8.3.1 * 运算符和取地址运算符& 运算符和取地址运算符int a=1000, *pa=&a; *(&a) == a &(*p) == p指向运算符 * 和取地址运算符 & 互逆 不能写成: 不能写成 *(& p)

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.3.2 指针变量的引用【例8-1】演示指针变量的引用 】void swap1(int x , int y){int temp;temp = x;x = y;y = temp;} void swap2(int *x , int *y){int temp;temp = *x;*x = *y;*y = temp;} void swap3(int *x , int *y){int *temp;temp = x;x = y;y = temp;} void main() {int a,b; int *pa,*pb; pa=&a; pb=&b; a=10,b=20;swap1(a,b); printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb); a=10,b=20;swap2(pa,pb); printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb); a=10,b=20;swap3(pa,pb); printf("a=%d,b=%d,*pa=%d,*pb=%d\n",a,b,*pa,*pb); }

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

【例8-1】演示指针变量的引用. 】swap1(int x,int y),主函数调用方式为 ,主函数调

用方式为:swap1(a,b); 值传递, , 的值以及 的值以及pa, 指针变量都不受影响 指针变量都不受影响. 值传递,a,b的值以及 ,pb指针变量都不受影响.

swap2(int *x,int *y),主函数调用方式为 ,主函数调用方式为:swap2(pa,pb); 形参是指针变量,实参也是指针变量. 形参是指针变量,实参也是指针变量.交换算法中采用指向运算 是对应相同的数据a, , 符*,所以 ,*y和pa,pb是对应相同的数据 ,b,最后函数实 ,所以*x, 和 , 是对应相同的数据 现了交换. 现了交换.

swap3(int *x,int *y),主函数调用方式为 ,主函数调用方式为:swap3(pa,pb); 形参是指针变量,实参也是指针变量. 形参是指针变量,实参也是指针变量.交换算法中临时指针变量 虽然把x, 交换 交换, 没有交换, 虽然把 ,y交换,但pa,pb没有交换,所以对应的数据 ,b也没 , 没有交换 所以对应的数据a, 也没 有受到影响,交换是失败的. 有受到影响,交换是失败的.

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

【例8-1】演示指针变量的引用. 】swap3()分析图 分析图

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.3.3 指针的算术运算和关系运算算术运算指针变量的++和 运算 运算. 指针变量的 和--运算. 指针加,减整数运算. 指针加,减整数运算. 指向同一数组不同元素的指针相减运算. 指向同一数组不同元素的指针相减运算. 假定有: 假定有:char str[100]= "Hello World"; char *p=str,*q;

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.3.3 指针的算术运算和关系运算p++

q=p+3;

字符W可以用 表示, 字符 可以用str[6]表示,也可以用 可以用 表示 也可以用p[5],q[2]表示 , 表示

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.3.3 指针的算术运算和关系运算关系运算 关系运算是比较指针大小的运算. 关系运算是比较指针大小的运算.两个指针 相等说明指向同一存储单元. 相等说明指向同一存储单元. p<q

指针不能进行如下等运算: 指针不能进行如下等运算:p+q p*q p/q ……

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.4 指针与数组8.4.1 指针与字符数组char str[100]= "Hello World"; char *p=str; 字符w可以有如下多种表示形式 可以有如下多种表示形式: 字符 可以有如下多种表示形式str[6] *(str+6) p[6] *(p+6)

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

【例8-2】演示指针和数组的关系. 】演示指针和数组的关系.#include <stdio.h> void main() { char str[100]="123456789"; char *p=str;char des[100],*q; while(*p != NULL) printf("%c",*p++); /*顺序输出 顺序输出*/ 顺序输出 printf("\n"); while(--p >= str) printf("%c",*p); /*逆序输出 逆序输出*/ 逆序输出 printf("\n"); p=str;q=des; while(*p != NULL) *q++ = *p++; /*字符串拷贝 字符串拷贝*/ 字符串拷贝 *q=NULL; printf("%s\n",des); return 0; }

《C语言程序设计(第三版)》-电子教案-丁亚涛-7073

8.4.2 指针与其他类型数组【例8-3】演示指针和整型数组的关系,数组动态分配 】演示指针和整型数组的关系, 内存. 内存.#include <stdio.h> void main() { int a[10] = {1,2,3,4,5,6,7,8,9,10}; int *p=a,*q=p+9; int s; for(s = 0 ; q >= p ; q--) s = s + *q; printf("s=%d\n",s); }

…… 此处隐藏:2163字,全部文档内容请下载后查看。喜欢就下载吧 ……
第8章 指针《C语言程序设计(第三版)》-电子教案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/2193627.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)