- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验六 之补充题 讲解 直角三角形边a, b, c应满足关系a2+b2=c2 要求:找出1~100内所有满足上述关系的a, b, c组合。输出时,每行包含3个组合。 源程序rtabc.c #include stdio.h void main(){ int a, b, c, count = 0; for (a = 1; a = 100; a ++) for (b=a; b = 100; b ++) for (c = b; c = 100; c ++) if (a*a + b*b == c*c){ count ++; /*计数器,用于换行控制*/ printf (%3d,%3d,%3d , a, b, c); if (count %3== 0) printf (\n); } } “实验七 函数调用编程练习”讲解 1.2 猜字母游戏,让计算机随机产生一个字母请人猜,如果猜对,打印“right”结束游戏,否则继续猜,猜到一定次数仍猜不对则结束游戏。每次运行程序可以反复猜多个字母,直到操作者希望结束时停止。 程序设计思路 采用功能分解的方法,将主要功能分为3个模块,分别用3个函数实现。 玩游戏——PlayGame() 设置游戏中的参数——SetGame() 退出游戏——QuitGame() 用户操作选择main() 编程技巧 先用空函数降低错误风险 main()菜单 PlayGame()的循环 26个字母的随机生成 char类型数据输入的问题 难题 1.3 猜字母游戏:计算机随机产生一个字母请人猜,要求每次运行产生的字母不同。 需要保存以往生成的字母信息——用数组实现 第12讲 指针(一) 内容提要 指针的概念; 难点:对指针数据类型的理解 为什么引入指针的概念 铁杆C/C++程序员最挚爱的武器:指针 C/C++的高效、高能主要来自于指针 很多不可能的任务由指针完成 为函数提供修改变量值的手段 为C的动态内存分配系统提供支持 为动态数据结构(如例链表、队列、二叉树等)提供支持 可以改善某些子程序的效率 内存地址(RAM Address) 计算机内的存储部件,所有指令和数据都保存在内存里 速度快,但是掉电即失 可以随机访问 只要指明要访问的内存单元的地址,就可以立即访问到该单元 地址是一个无符号整数,其字长一般与主机相同 内存中的每个字节都有唯一的一个地址 地址按字节编号,按类型分配空间 寻址方式 如何读写内存中的数据? 通过对变量在内存所占有的存储单元进行操作,一般的变量名代表了该变量的内容 两种寻址方式 直接(寻址)访问 直接按变量名存取变量内容(指针变量名所代表的是一个地址) 间接(寻址)访问 通过指针变量来间接存取它所指向的变量内容 指针(Pointer)的概念 指针也是一种数据类型 指针变量 声明为指针类型的变量,是专门存放地址数据的变量 , 一般情况下,指针中存放的是另一个变量的首地址 如何定义指针变量? 指针变量的定义举例: int * p ; 定义了一个指针变量p,简称指针p,只能用于存放另一个整型变量的地址 指针变量初始化: 在定义指针变量时给定确切地址 int a,b,*p=a; *p就像普通的变量a一样使用,其值是p指向的内存的内容(在上例和a等价,但寻址方式不同) 指针变量赋确定值: 在指针变量定义后通过赋值方式获得一个确切地址, 有地址值的指针才能间接寻址 例: p=b; 此时p中存放的是变量b的地址, *p与b等价,p可 动态(任意)地指向不同内存,从而*p代表不同的变量 与*操作符(互逆) ——地址运算符,用 来取变量的地址 int i, *p;p = i; int *p, a[10];p = a; int *p, a[10];p = a[0]; int *p, a[10];p = a[5]; * ——指针运算符(间接寻址运算符),用来存取指针当前指向的地址中内容 *p = 0; /*相当于i=0*/ (*p)++ ; /*相当于a[0]++ */ p++; *p=1; */相当于a[1]=1 */ printf(“%d”,*p); /*相当于 printf (“%d”,a[0]); */ *p=a[0]+a[1] */相当于 a[5]=a[0]+a[1] */ int i,*p; p=i; 指针变量与其它类型变量的对比 指针的指向 只能指向同一基类型的变量,否则将引起warning float x; int *p = x; TC编译 warning: Suspicious pointer conversion in function main VC编译 War
文档评论(0)