第6章 指针—补充案例
更新时间:2023-10-04 18:03:01 阅读量: 综合文库 文档下载
- 机器人大乱斗第6章推荐度:
- 相关推荐
博学谷——让IT教学更简单,让IT学习更有效
第6章 指针
案例6-1 指针的概念 一、案例描述
1、 考核知识点
编号:00606001 名称:指针的概念 2、 练习目标
? 掌握指针的概念
3、 需求分析
在C语言中有一种特殊类型的变量,专门用于存放其他变量的地址,这种变量称为指针。为了加深读者对指针概念的理解,本案例将定义变量和指针变量,来演示指针的本质。 4、 设计思路(实现原理) 1)声明main()函数。
2)在main()函数中,定义两个变量和两个指针变量,指针变量用于存放变量的地址。
二、案例实现
编写程序,代码如下:
1 #include
int i; char c;
int * pi = &i; char * pc = &c;
三、案例总结
在该案例中,首先定义了一个整型变量i和一个字符变量c,然后使用“&”运算符分别获得变量i和c的内存地址,并分别使用一个整型指针变量和一个字符指针变量来记住地址。其中指针变量pi用于记住变量i的内存地址,而指针变量pc用于记住变量c的内存地址。下面通过一个图来演示,如图6-1所示。
1
博学谷——让IT教学更简单,让IT学习更有效
0x804a0200x804a024i:0c:0??0x804a0100x804a014 pi:0x804a020pc:0x804a024
图6-1 变量在内存中的存储结构
在图6-1中,编号0x804a020、0x804a024、0x804a010和0x804a014代表的都是内存中的地址,i代表的是一个整型变量,c代表的是字符变量,pi代表的是指向i的整型指针变量,pc代表的是指向c的字符指针变量。箭头代表了指针变量pi,pc和变量i,c之间的指向关系(即指针变量指向变量)。不难看出,指针变量实际上存储的并不是具体的值,而是变量的内存地址。
案例6-2 指针的运算 一、案例描述
1、 考核知识点
编号:00606002 名称:指针的运算
2、 练习目标
? 了解指针的常见运算符有哪些 ? 掌握指针的运算
3、 需求分析
指针作为一种特殊的数据类型同样也可以使用算术运算符、逻辑运算符等进行运算。为了加深初学者对指针运算的理解,本案例将演示常见指针运算符的用法。 4、 设计思路(实现原理) 1) 声明main()函数。
2) 在main()函数中定义指针变量,分别用指针运算符进行运算。
二、案例实现
编写程序,代码如下:
1 #include
int array[5] = {100, 110, 120, 130, 140}; int *p1 = &array[0]; int *p2 = &array[1]; int *p3 = &array[3];
printf(\
2
博学谷——让IT教学更简单,让IT学习更有效
9 10 11 12 13 14 15 16 17 18 19 20 21 }
printf(\printf(\printf(\
printf(\printf(\
printf(\++p2;
printf(\printf(\--p3;
printf(\getchar();
运行结果如图6-2所示。
图6-2 运行结果
三、案例总结
1、案例的第9行,通过取址运算符“&”获取元素array[0]的地址。 2、案例的第10行,通过取值运算符“*”获取地址&array[0]的值。
3、案例的第11-13行,通过指针变量与整数的加减运算,指针的值发生了变化。这里p1+1的值比p的值大4,而p1-1的值比p的值小4,是因为int类型的数据在内存中占用的就是4个字节,指针变量的加减运算实质上是其指针在内存中移动数据类型所占据的字节数。
4、案例的第14-19行,通过指针变量的自增自减运算,指针的值发生了变化。在指针变量p2和p3分别进行自增自减运算后,对其进行取值操作,它们的值都移动了一个元素:p2指向的是数组第2个元素的值,进行自增操作后输出第3个元素的值;p3指向的是数组第4个元素的值,进行自减操作后输出第3个元素的值。由此可以发现++p2与p2+1的操作效果一样的,--p3与p3-1的操作效果一样的,都是对内存地址移动一个数据类型大小的长度。
3
博学谷——让IT教学更简单,让IT学习更有效
案例6-3 指向变量的指针 一、案例描述
1、 考核知识点
编号:00606003
名称:指向变量的指针 2、 练习目标
? 掌握指针变量的使用
3、 需求分析
为了让初学者加深指针变量的理解,本案例将演示指针变量的使用及作为函数参数的使用。 4、 设计思路(实现原理)
1) 声明func()函数,用于改变指针指向变量的值。 2) 声明main()函数。
3) 在main()函数体内,定义变量和指针变量。
4) 打印变量和指针变量,调用func()函数,再次打印变量和指针变量。
二、案例实现
编写程序,代码如下:
1 #include
6 void main() 7 { 8 9 10 11 12 13 }
int num = 10;
printf(\func(&num);
printf(\getchar(); *p = 20;
运行结果如图6-3所示。
4
博学谷——让IT教学更简单,让IT学习更有效
图6-3 运行结果
三、案例总结
1、从图6-3中可以看出,在func()函数调用后变量num的值发生了变化。在程序中第2行代码定义一个func()函数,该函数的参数类型为指针类型。在main()函数中调用该函数时传入变量num的地址,对其取值运算后赋入新的值。
2、需要注意的是,func()函数必须写在main()函数的前面,否则需要在main()函数前声明func()函数。
案例6-4 指向一维数组元素的指针 一、案例描述
1、 考核知识点
编号:00606004
名称:指向一维数组元素的指针 2、 练习目标
? 了解指针在一维数组中的移动方式 ? 掌握用指针访问一维数组元素的方式
3、 需求分析
数组可以通过索引的方式来访问数组中的每个元素,也可以用一个指针来指向一维数组,通过指针的移动来依次访问数组中的元素。为了让初学者加深对指向一维数组元素的指针的理解,本案例将定义一个一维数组,并用指针依次访问数组元素。 4、 设计思路(实现原理) 1) 声明main()函数。
2) 在main()函数中,定义一个一维数组,并用指针依次访问数组元素。
二、案例实现
编写程序,代码如下:
1 #include
int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int i, *p;
for (p = array, i = 0; i < 10; p++, i++) { }
printf(\
5
printf(\
正在阅读:
第6章 指针—补充案例10-04
英美文化论文01-24
建筑消防设施中的常见问题及产生的原因06-25
福建省三明市2006年初中毕业生学业考试语文试题(一)01-03
超市中秋国庆营销策划方案05-06
【常用繁体字大全】04-16
中国碳化硅块行业市场前景分析预测年度报告(目录) - 图文09-10
12.9级内六角螺栓05-29
- Win7 安装MySql图示
- 计算器课程设计报告
- 部编版八年下语文第三单元第六单元古诗文理解默写练习及答案
- 13质量通病防治方案和施工措施
- 土力学试题~~~~
- 公务员打印资料
- 传热膜系数测定实验报告 - 图文
- 新时期煤矿协管安全工作的创新与实践
- 第五章 习题及参考答案
- 220kV架空线路强条执行记录表
- 音乐欣赏读后感
- 高炉
- 劳动教育需要新的时代内涵
- 10建筑地面工程施工质量验收规范GB50209-20021
- 银行会计练习题2答案
- 2013年七年级地理上册知识点复习提纲湘教版
- 人教版三年级语文上册第四单元测试题(A卷)(有答案)
- 营养师第九章练习题
- 湖北省武汉市2018届高三毕业生二月调研 理综化学
- 行业分析2018-2023年中国男性护肤品行业市场发展分析及投资前景
- 指针
- 补充
- 案例
- 《物权法》用益物权制度评析
- 资金申请报告正文 - 图文
- 卫生局廉政风险点排查防控工作实施方案
- 基础护理学习题
- 粤妇字〔2010〕38号- 中国广州政府门户网站
- 带有修辞的诗句
- 接待工作的实施 - 教案
- 二年级数学下册第五单元《谁的眼睛亮观察物体》教学设计2青岛版六三制〔精品篇〕
- 2017高考化学大二轮复习第1部分知识整合专题2基本理论第8讲化学反应速率和化学平衡
- 采用DMA分区计量降低产销差的实践
- 2014高考英语二轮专题复习经典导学案(12)
- 高三试题先秦部分
- 2016-2022年中国电力电子元件市场运营监测研究报告 - 图文
- 装置开停工管理规定分解
- 人教版七年历史下册复习提纲知识点归纳精华
- 人民代表大会开幕式、第一次全体会议主持词
- 中国农业大学五级分制及绩点说明(英文)
- 水利工程安全生产知识手册(最新) - 图文
- 融资融券业务说明书V0.1 - 图文
- 《学生第二》读后感