黄永峰《程序设计教学》第11讲指针(上).ppt
文本预览下载声明
§11.4 一维数组指针及其指针变量 数组名和指针变量作函数参数 [例] 将数组a中n个元素按相反顺序存放 数组名作函数参数 函数inv()可以用指针变量作形参 §11.4 数组的指针变量 小结:数组作函数的参数,实参和形参之间传送数组的首地址,首地址可以用指针表示,也可以用数组名表示,因此,实参和形参有以下四种组合情况。 组合情况 实参 形参 1 数组名 数组名 2 数组名 指针 3 指针 指针 4 指针 数组名 重点关注 直接访问和间接访问的含义 指针与指针变量的概念 注意P172倒数第2段,仔细阅读和体会 数组名实际是指针,但不是指针变量 指针做函数参数传递 第10次课后练习 2.编写程序,将两个长度各为10的整型数组数据按从小到大排序,然后将两组数据合并到一个长度为20的整型数组中,合并后的数组仍然按照从小到大排序。 要求: 假设每个数组中的元素均无重复; 排序算法可以任选; 不能使用先合并,然后再次排序的方法,要求一次性完成数据合并和排序工作; 使用指针变量编程。 本次习题必做题有2道,在13周末提交源代码和程序运行结果。选择题1道。 第10次课后练习 2. 有n(n50)个人围成一圈,顺序编号。从第1个人开始报数(1,2,3),报数为3者退出圈子。问最后留下人的原来刚开始时排在几号? 要求: (1)要求使用指针变量来写程序; (2)分为2个函数来实现,主函数是输入n的值和设置一个保存每人编号数组num[50];另定义一个del(int *p,int m)函数来处理退出和打印最后一个编号。 (3)main()调用del()时,调用形式为del(num,n)。 (4)做好关键语句的注释。 第10次上机习题 选择题1:重新编写上次作业“犀利哥故事之十一--终成眷属”程序(第9次作业的选做题)。要求: (1)将函数调用中所有函数参数改为指针类型(地址传递) (2)断点调试程序。截获函数调用时参数传递过程中参数值和地址分配情况的界面图; (3)仔细体会:采用指针类型与原来的差异 选择题2:解释本故事中2楼回帖意思是什么?你还理解其他回帖意思吗? 通过变量名访问内存空间时,又作用域的限定。而通过地址来访问时,不受作用域的限定。但地址不便于记忆;因此,引入了指针变量来保存。 * 第11讲 指针(上)黄永峰参考教材的6.1 到6.3节2015.11.30 本讲主要内容 指针和指针变量的概念 指针变量作为函数参数 数组的指针及其指针变量 学“指针”虽然难,但难不过农民工生活! 指针是天使与魔鬼的化身 犀利哥故事之十二—喜庆婚礼 话说犀利哥和天仙妹喜结良缘。举行婚礼的当天,聚集了很多祝福亲朋好友。为了添加喜庆,大家要求犀利哥表演一个节目。犀利哥思索良久,终于想起当年夜宿桥洞时听到的一个故事。故事情节是… 那是在抗击日本侵略者的年代,特务阿宝接到上级指令,要去寻找一个密钥。几经周折,线人告之:密钥藏在某墓地看护人所住的一栋小楼的房间中。一个风雨交加的夜晚,阿宝潜入了小楼,房间很多,不知该进哪一间,正在一筹莫展之际,忽然走廊上的电话铃声响起。艺高人胆大,阿宝毫不迟疑,抓起听筒,一个陌生人说:“去打开小姐卧室 ,那里有线索”。阿金疾步上楼,打开小姐卧室,用电筒一照,只见桌上赫然6个大字:1000房间。阿宝眼睛一亮,迅速找到1000房间,取出重要数据11618(密钥),完成任务 11.1 指针的概念 指针(pointer):是内存中某存储空间的地址(编号) 地址和指针是同义词,变量的指针就是变量的地址 指针变量:也是内存中的一个变量,只是其值存放的是另一个变量地址的变量 1000 11618 1000房间(b) 小姐卧室(a) 指针变量a 变量b 11.1 指针的概念 引进指针以后,变量的访问(访问是指取出其值或向它赋值)方式有两种: (1)直接访问,通过变量名访问,如通过变量名i直接访问 (2)间接访问,通过该变量的指针(地址)来访问,如通过2004(i_pointer)访问变量i 4201061967120932xx 喂:“教C++的,干活 喂:“黄永峰,干活” 间接访问 直接访问 黄永峰 教c++的 §11.2 指针变量 指针变量:存放其他变量地址(指针)的变量 指针变量有2个属性: 指针变量指向的变量类型。如i_pointer指向的变量i是整型 指针变量指向哪一个变量,即该指针变量的值(地址值)是多少。如i_pointer的值是2000 指针变量
显示全部