- 0
- 0
- 约7.6千字
- 约 47页
- 2021-12-07 发布于湖北
- 举报
8.3 指针与函数 8.3.1 指针作为函数参数 6.指向数组作为函数参数 指针数组作为函数参数实际上与数组名作为函数参数和指向指针的指针作为函数参数是相同的。 8.3 指针与函数 8.3.2 指针函数 前面所用到的函数中,实参或形参都可以是指针变量,但返回值都不是指针,而是某一实际值。实际上,不同类型的指针是可以作为函数返回值的。指针函数就是返回值指针的函数。 类型说明符 函数名(参数列表); 指针函数的定义格式如下: char *linkstr(str1,str2); 这是一个指针函数,函数名是linkstr,该函数有两个参数 str1和 str2,该函数的返回值是一个char型指针。 8.3 指针与函数 8.3.3 指向函数的指针变量 变量是与其存储单元相联系的,通过变量名可以得到变量的存储地址。一个函数包含一组指令序列,存储在某一段内存中,这段内存空间的起始地址为函数的入口地址,通过该地址也可以找到这个函数,故称函数的入口地址为函数的指针。在实际应用中,可以定义一个指针变量,其值等于该函数的入口地址,使其指向这个函数,这样通过这个指针变量也可以调用这个函数。这种指针变量成为指向函数的指针变量。而这种调用函数的方式与前面用函数名来调用函数的方式是不一样的。定义指向函数的指针变量的一般格式如下: 类型说明符 (*指针变量名)(); 8.3 指针与函数 8.3.3 指向函数的指针变量 用一个函数名给指向函数的指针赋值,则该指针指向该函数所存放在内存中的入口地址,即一个函数存放在内存中的入口地址是用函数名来表示的,而不必给出参数,也不要圆括号。用指向函数的指针调用函数时,只需使用如下格式: *(指针变量名)(实参表) 8.4 指针与字符串 8.4.1 字符串的表示形式 1.用字符数组实现 2.用字符指针实现 可以不定义字符数组来实现字符串的操作,而通过字符指针来访问字符串中的存储区。 char *ps; ps=modi string; 此时,字符指针ps指向该字符串常量中的首字符“m”,使用指针ps的加、减运算即可移动指针,以便能访问到该字符串的任何一个字符,并进行存取操作。 返回 8.4 指针与字符串 8.4.2 字符指针作为函数参数 将一个字符串从一个函数传递到另一个函数,可以用地址传递的方法,即用字符数组名作为参数或用指向字符串的指针作为参数。在被调函数中可以改变字符串的内容,在主调函数中可以得到改变了的字符串。 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (1)字符数组由若干元素组成,每个元素中存放一个具体的字符,而字符指针变量中存放的是地址即字符串的首地址,通过指针指向相应的字符,而不是用指针变量去存放字符串中的每一个字符。 (2)赋初值的方式不同。对数组赋初值要用static存储类型,例如: static str1[]={I will do my best!}; 而对字符指针变量赋初值不必加static存储类型,例如: char *ps=I will do my best!; 这是因为并没有对数组初始化,只是对指针变量初始化。 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (3)赋值方式不同。字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值: char str[14]; str=I will do my best!; 而对字符指针变量,可以采用下面的方法赋值: char *a; a=I will do my best!; 但赋给a的不是字符,而是字符串的首地址。 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (4)指针变量赋初值时方法灵活多样。例如,对以下的变量定义和赋初值: char *a=I will do my best!; 等价于: char *a; a=I will do my best!; 而对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值,例如: static char str1[14]={I will do my best!}; 不等价于: char str1[14]; str1[]=I will do my best!; 8.4 指针与字符串 8.4.3 使用字符指针变量与字符数组的区别 (5)定义一个数组,在编译时即已分配内存单元,有确定的地址。而定义一个字符指针变量,给指针变量分配内存单元,在其中可以放一个地址值,即该指针变量可以指向一个字符型数据,但如果未赋予它一个地址,则它并不具体指向哪一个字符数据
您可能关注的文档
- 自查:乡村学校少年宫项目自查报告范文.doc
- 自查:乡镇干部学习廉政准则自查报告.doc
- 自查:乡镇计划生育两个转变自查报告.doc
- 自查:乡镇食品安全自查报告.doc
- 自查:乡镇食品安全自查报告范文.doc
- 自查:消防安全自查报告范本.doc
- 自查:小班班级卫生自查报告.doc
- 自查:小学全面开展廉洁教育情况自查报告.doc
- 自查:小学师德师风建设自查报告.doc
- 自查:小学校舍安全自查报告.doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 尼康Nikon COOLPIX 5700 Manual说明书用户手册.pdf VIP
- 《教你如何删除群里发的图片.doc VIP
- PMF720L微机线路保护测控装置技术及使用说明书(Ver1.2).pdf VIP
- 2026年中国离网光伏发电产业现状深度调研研究报告.docx
- 2025(人教版)数学六年级下册全册教学设计.docx
- API 682-2014 离心泵和转子泵用轴封系统 第四版(中文).pdf
- 华东师大版八年级数学上册《14.2.3容易误导读者的统计图》同步练习题及答案.docx VIP
- 《从零开始学低压电工技术》,张伯虎,高清版.pdf
- 2026京东智能产发股份有限公司招股说明书.pdf VIP
- 基于交通静化理论的威海市环海路部分路段的优化设计--本科生毕业论文(设计).doc VIP
原创力文档

文档评论(0)