- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 指针、函数、及其他数据类型 指针 函数 结构体 共用体 枚举 3.1 指针 指针是一种非常重要的数据类型,利用指针变量可以表示各种数据结构,方便地引用数组和字符串,像汇编语言一样处理内存地址。指针极大地丰富了C语言的功能,运用指针编程是C语言最主要的风格之一。 3.1.1 指针的基本概念 指针变量的定义 数据类型符 *指针变量名; int *p; double *pd; int *p1, *p2; int *p1, p2; 3.1.1 指针的基本概念 取地址运算符和*取值运算符 int n; int *pn; pn=n; *pn=2; 3.1.1 指针的基本概念 指针的运算 指针是一个内存地址值,它是一个无符号的整数,可以进行加法和减法运算,但不允许进行乘法、除法和两个指针值的相加运算。指针类型的变量在内存中都和int类型所占的大小想相同,可以使用sizeof来查看大小 int a[5] = {1, 2, 3, 4, 5}; int *p1 = a[1]; p1++; 3.1.1 指针的基本概念 void指针类型 void *p; 上面的定义中,p仍然是一个指针变量,有自己的内存空间,占用4个字节,但是没有指定它指向哪种类型的变量。在这种情况下,不能对指针变量进行运算,否则会导致编译错误。 3.1.1 指针的基本概念 指针的类型转换 (TYPE *)p 强制类型转换的结果是生成一个新的指针,该指针的类型为TYPE *,所指向的类型为TYPE,其他属性都不变,所指向的地址仍为原来的地址。 3.1.1 指针的基本概念 指向指针的指针 数据类型符 **指向指针的指针变量名; int a,b; int *p; int **pp; p=a 1 a为变量a的地址,即指针变量p指向整型的变量a pp=p; 2 p为指针变量p的地址,即指向指针变量的指针变量pp指向指针变量p **pp=6; 问上面的语局同什么语句相同? *pp=b 问上面的语句同什么语句相同? 3.1.2 指针与数组的互操作 数组名和指针变量是两个不同的概念,但他们都可以用来对数组或数组元素进行引用。数组名实际上就是数组的首地址 int a[10]; int *p; p=a; p=a[0]; 对数组元素的引用既可以使用下标法,也可以使用指针的表示方法,如: p+n与a+n 表示数组元素a[n]的地址,即a[n] *(p+n)和*(a+n) 表示数组的元素a[n] 3.1.3 指针数组 指针变量也可以作为数组元素,进而构成指针数组。 char *week[]={Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}; 3.2 函数 函数的定义与声明 函数的调用与参数传递 变量的作用域 变量的存储类型 外部函数和内部函数 函数的递归 函数指针 3.2.1 函数的定义与声明 函数对应于程序的模块,需要先定义后使用。定义也叫函数的声明,函数的声明需要注意的是函数句尾有一个分号,并且形式参数可以只写数据类型 返回值类型符 函数名(形式参数列表) { 定义部分; 执行语句部分; } return语句的格式为: return 表达式; return(表达式); 3.2.2 函数的调用与参数传递 函数调用的一般格式为: 函数名(实际参数列表) 函数参数传递是调用函数和被调用函数在调用发生时进行通信的方法。基本的参数传递机制有: 值传递:被调用函数中的任何操作都不会影响到实参变量的值 地址传递:被调用函数队形式参数的任何擦操作做都被处理成间接寻址,通过对地质访问,会影响实际参数变量 通过指针的方式实现了地质的传递,但这种地质传递方式实际上也是值传递,只不过传递的是地址值 3.2.3 变量的作用域 局部变量是在函数内部定义的变量或函数的形式参数。 int func (int a,int b) { int i; … } int main() { int i, j; … } 3.2.3 变量的作用域 全局变量是在函数外部定义的变量 int x, y; void func() { … } int main() { /* int y; */ … } 现在全局变量x,y在两个函数中都可以使用,需要注意的是,如果在函数内部定义变量和全局变量名相同,又或者是函数参数中有和
您可能关注的文档
- spss教程第三章--相关分析与回归模型的建立与分析.doc
- 第三章 ARMA实验报告.doc
- 《数据库原理及应用-(SQLServer2008版)》 唐国良蔡中民-第5章.ppt
- 自考00158资产评估 练习题06.doc
- 房地产估价案例与分析真题2002年.doc
- 2007H127无线通信室内信号分布系统-第1部分:总体技术要求-送审稿编制说明2010-8.doc
- 流动资产评估习题.doc
- 中国人事信息管理系统33版升级相关说明.doc
- 收益法在房地产评估中的应用研究.doc
- 整理后的金三网上申报操作指南.doc
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 鲁教版初中八年级的上册英语短语句型.docx VIP
- 新人教版高中数学选择性必修第一册全套PPT课件及配套讲义.pptx VIP
- 四川省拟任县处级试题 四川省拟任县处级党政领导干部任职资格考试题.doc VIP
- 鲁教版八年级上册英语短语句型.doc VIP
- 最新人教版(2023年新版)信息技术四年级上册(含课后反思).pdf VIP
- 2025年广东省广州市高二下学期期末考试物理(理)试卷Word版含答案 .pdf VIP
- 简单的个人简历模板.pdf VIP
- 上消化道穿孔教学查房.pptx VIP
- 科研方法论知到智慧树期末考试答案题库2025年南开大学.docx VIP
- 2023山西临汾市永和县招用公益性岗位人员50人笔试备考题库及答案解析.docx VIP
文档评论(0)