- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 指针1(周)
Functions and Program Structure 第5章 指针 --难点重点 内容提要 指针的概念 难点:理解指针数据类型 指针与数组的关系 动态内存分配函数及其应用 一维、二维动态数组的实现 用指针做函数参数 Skill 用指针做函数参数编程 指针的故事 “该程序执行了非法操作,即将关闭” 这种错误几乎全是由指针和数组导致的 黑客攻击服务器利用的bug绝大部分都是指针和数组造成的 与*运算符 含义: (取地址运算符) *(指针运算符) 指针变量赋值 指针变量赋值 指针加、减运算 例如: int *p; p++; 相当于 p=p+sizeof(int); 例如:char *p; p=p+n; 相当于: p=p+n*sizeof(char); 指针比较运算 不能与非指针类型变量进行比较 指针变量与其它类型变量的对比 int i,*p; p=i; * * * * * 某班有n名学生,记录所有学生的成绩; int n; scanf(%d,n); int s[n]; 可以用指针实现数组大小的动态调整。 int *p; p = (int *)malloc(n*sizeof(int)); 概念引入: 解决问题:某班有100名学生,记录下所有学 生的成绩; int s[100]; 指 针 §5.1 指针的概念 地址 指针 一、地址 指令和数据都保存在内存内 速度快,但是掉电即失 可以随机访问 只要指名要访问的内存单元的地址,就可以立即访问到该单元 二、 指 针 指针是C语言的重要特点。 指针既可以指向各种类型的变量,也可以指向函数。 正确的使用指针,能有效地表示和处理复杂的数据结构,特别有利于对动态数据的处理。 采用访问地址的方法存取数据,速度快,效率高。 存放地址的变量——指针变量 指针变量中存放的地址——指针 指针变量定义格式: 数据类型 * 变量名; int *p1,*p2; char *pc,c; * 指明说明的变量为指针变量 表明指针变量所指向的变量的数据类型 定义了指向整型变量的指针变量p1,p2 定义了字符型变量c,及指向字符型变量的指针变量pc ? 指针变量定义时分配一存放地址的内存单元(4字节),其中值不定,可用同类型变量的地址对其初始化 指针变量的定义 VC环境 含义: 取指针变量所指向变量的内容 单目运算符 优先级: 2 结合性:自右向左 两者关系:互为逆运算 含义: 取变量的地址 单目运算符 优先级: 2 结合性:自右向左 int a=10; 0x0037b000 a 0x0037b004 0x0037b008 0x0037b00B a …... …... 整型变量 10 指针变量 0x0037b000 仅仅是定义了可以指向int型数据 的指针变量,但并未指向a 使其指向a需对指针变量初始化 int *pa; pa = a; int *pa=a; pa int a=10; 0x0037b000 a 0x0037b004 0x0037b008 0x0037b00B a …... …... 整型变量 10 指针变量 0x0037b000 int *pa; pa = a; int *pa=a; pa Pointers have names, types and values 例如 main( ) {int a,b; int *pa, *pb; a=100; b=10; pa=a; pb=b; printf(%d,%d\n,a,b); printf(%d,%d\n,*pa,*pb); } 定义指针变量pa,pb 将a的地址送pa 将b的地址送pb 输出所指向的变量的内容 运行结果为 100,10 100,10 例 :#include stdio.h main() { int i,*ip; ip=i; i=10; printf(%d,%d\n,i,*ip); *ip=100; printf(%d,%d\n,i,*ip); } 运行结果:10,10 100,100 指针赋值运算 -将指针变量初始化为空指针,意为该变量不指向任一内存单元 -将变量的地址赋值给指针 -同类型的指针变量之间互相赋值
您可能关注的文档
最近下载
- 融合新闻:通往未来新闻之路-暨南大学-中国大学MOOC慕课答案.pdf VIP
- 新媒体文化十二讲_暨南大学中国大学mooc课后章节答案期末考试题库2023年.docx VIP
- 《倍的认识》作业设计.pdf VIP
- 二次根式单元测试.doc VIP
- 806机械设计-四川l轻化工大学2022年硕士研究生考试自命试题.pdf VIP
- 计量经济学课程论文.doc VIP
- 《计量经济学》课程论文.docx VIP
- 医药营销团队绩效考核方案.docx VIP
- 钢筋混凝土三通井工程量计算表.xlsx VIP
- 新媒体文化十二讲(暨南大学)中国大学MOOC慕课章节测验答案(课程ID:1206589806).pdf VIP
原创力文档


文档评论(0)