- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计基础08汇编
程序设计基础(C语言) 东北大学高级语言程序设计课程组 课程网站:/cxsj 程序设计基础(C语言) 指针 概述 指针是C语言的重要概念之一 它使C语言比之其它程序设计语言更具特色 深入理解C语言特性 指针是学习使用C语言的难点 指针是C语言的一个重要概念 正确而灵活地使用指针 有效地描述各种复杂的数据结构 动态地分配内存空间 自由地在函数之间传递各种类型的数据 使程序简洁、紧凑,执行效率高 指针是C提供的一种数据结构 属于简单数据类型 它的意义和作用明显又不同于一般的数据类型 1.预备知识 C语言如何处理? 高级语言中的变量具有三个属性 变量的名、变量的值、变量的地址 编程者使用c程序的一个变量 定义变量的数据类型 数据类型决定了一个变量在内存中所占用的存储空间的大小 变量在内存中总是占用几个连续的字节 定义变量名 C语言的编译系统会根据变量的数据类型为该变量分配内存单元 确定变量的地址 变量的地址就是为变量分配的内存单元的起始编号 就可以通过变量名对内存中变量对应的地址进行操作 1.预备知识 C语言如何处理? 直接访问 通过变量名访问数据的方式称为直接访问 例如:printf(%d, n); /* 通过变量名访问变量n */ 间接访问 如果将变量n的地址存放在另一个变量pn中,通过访问变量pn,间接达到访问变量i的目的,这种方式称为变量的间接访问 在C语言中,间接寻址方式访问内存是通过指针变量实现的 指针变量通过直接寻址方式访问获得的是一个地址值 在该地址起始的一个存储单元中存放程序需要的数据 2.指针变量 定义 用于指向其他变量的变量 指针变量是一个变量 和普通变量一样占用一定的存储空间 该存储空间存放的是一个地址值而不是普通的数据值 指针变量是一个地址变量 指针变量的值是一个内存单元的地址 它指向另一个变量的值 指针就是地址 当将变量的地址存入指针变量后,就说这个指针指向了该变量 指针变量只能存放某一数据类型的变量 问题? 变量的类型和指向变量的类型之间的区别? 2.指针变量 指针变量的声明 指针变量与一般的变量的区别 格式 数据类型名 *指针变量名; 说明 数据类型表示指针所指向的数据的数据类型 提示:不是指针变量的数据类型 *是指针的标志,表示它后面的变量名是指针类型 例 int *i_p;/*定义了指针变量i_p ,指向的对象类型为整型*/ char *cp;/*定义了指针变量cp, 指向的对象类型为字符型*/ 2.指针变量 指针变量的声明 提示 声明语句的*只能用于指针变量 这种表示方式说明被声明的变量是一个指针 *不针对声明语句中的所有变量 每一个指针都必须在其名字前面有一个前缀*声明 例如:int *pt1,pt2; pt2为整型变量而不是整型指针变量 指针变量名是pt1而不是*pt1 指针变量只能指向定义时规定的类型变量 只有同一数据类型的地 址才能存放在指向该类型变量的指针变量中 例如: int *ip;/*ip指针变量只能存放整型变量的地址*/ 2.指针变量 指针变量的声明 提示 在定义指针时可以用void将指针定义为空类型 不指定指针指向一个确定的类型 区分“值”与“内容”的含义 例如 整型变量是内容为整型数值的变量 整型指针变量是存放整型变量地址的变量 在引用指针变量前必须首先让指针指向一个变量 这一点非常重要 定义指针变量后,并未确定该变量指向何处,该变量的值是不确定的 2.指针变量 指针变量初始化 在使用指针变量时,要首先对指针变量进行初始化,让指针变量指向一个具体的变量 初始化的方式 使用赋值语句 例 int i, *pi; /* 说明指针变量pi和变量i */pi=i; /*使用取地址符把变量i的地址赋值给指针变量:pi指向了整型变量i */ 说明指针变量的时候同时进行 例:使用先声明变量的地址 int i,*pi=i; 问题? 写成int *pa; *pa=a;会出现什么问题? 2.指针变量 指针变量初始化 在使用指针变量时,要首先对指针变量进行初始化,让指针变量指向一个具体的变量 初始化的方式 给指针变量赋空值(赋值为符号常量NULL ) 例 p=NULL;/*表示指针p为空,没有指向任何对象*/ 一般情况下给没有初始值的指针变量赋值为NULL 实际上,NULL是整数0,系统保证0单元不存储任何数据的值(地址) NULL是头文件stdio.h以及其它几个头文件中定义的符号常量 2.指针变量 指针变量初始化 提示 在使用指针之前一定要对其进行初始化 否则程序不知道指向何处 系统在执行程序时会给出如下的信息 run-time error R6001——null pointer assigment 或者引起更严重的错误——系统崩溃 对未
您可能关注的文档
- 移动采集高级培训答案解析系列1汇编.docx
- 移植不同剂量脐带间充质干细胞提高老年痴呆大鼠学习记忆能力的比较汇编.doc
- 移动通信基站基础知识概括汇编.ppt
- 稀土化学专业知识竞赛题库(二)——稀土基础知识汇编.doc
- 程序设计与程序设计语言汇编.ppt
- 稀土永磁电机汇编.ppt
- 程序升温技术汇编.ppt
- 程益国《公众演说》【中华讲师网】汇编.pptx
- 程控增益放大模块的使用汇编.docx
- 税务会计公式汇总汇编.doc
- 2026年及未来5年矫形手术器械项目市场数据调查、监测研究报告.docx
- 2026年及未来5年3-硝基-4-氨基苯酚项目市场数据调查、监测研究报告.docx
- 2026年及未来5年L型垫块项目市场数据调查、监测研究报告.docx
- 初中七年级语文期末复习资料合集.docx
- 2025年电信话务员年终工作总结例文(2篇).docx
- 2025年人事行政部年终总结参考(3篇).docx
- 2026年及未来5年聚扁氟乙烯项目市场数据调查、监测研究报告.docx
- 2025呼吸试题及答案.docx
- 2026年及未来5年输液剂项目市场数据调查、监测研究报告.docx
- 2026年及未来5年摇摆仪项目市场数据调查、监测研究报告.docx
最近下载
- 码头港口仓储部业务培训教材.ppt VIP
- 17《昆明的雨》课件(共21张PPT)(内嵌音频+视频).pptx VIP
- 2004浙S2 钢筋混凝土化粪池.docx VIP
- 完整版《“十五五”规划建议》全文解读PPT.pptx
- DB13(J)T 8060-2019 城镇供热管道及设备安装工程施工质量验收标准.docx VIP
- 人教版高中数学精讲精练必修二101 随机事件与概率(精练)(原卷版).pdf VIP
- SYT6391-2014 SEG D Rev3.0地震数据记录格式.pdf VIP
- 石楼南煤层气勘查实施方案.docx VIP
- 人教版高中数学精讲精练必修一1.2 集合间的关系(精讲)(解析版).pdf VIP
- IPV4和IPV6地址.ppt VIP
原创力文档


文档评论(0)