- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 指针 指针的概念 前言 C程序设计中使用指针可以: 使程序简洁、紧凑、高效 有效地表示复杂的数据结构 动态分配内存 得到多于一个的函数返回值 指针的概念 变量与地址 与*运算符 含义 直接访问与间接访问 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 指针变量 指针变量与其所指向的变量之间的关系 指针变量的初始化 一般形式:[存储类型] 数据类型 *指针名=初始地址值; 指针变量必须先赋值,再使用 指针变量作为函数参数——地址传递 特点:共享内存,“双向”传递 行指针与列指针(2) 对二维数组 int a[3][4],有 a-----二维数组的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j -----第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 二维数组的指针变量 指向二维数组元素的指针变量 二维数组指针变量 定义形式: 数据类型 (*指针名)[一维数组维数]; 例 int (*p)[4]; 二维数组的指针作函数参数 用指向变量的指针变量 用指向一维数组的指针变量 用二维数组名 指针与字符串 字符串表示形式 用字符数组实现 字符串指针作函数参数 字符指针变量与字符数组 char *cp; 与 char str[20]; str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址 char str[20];str=“I love China!”; (?)char *cp;cp=“I love China!”; (?) str是地址常量;cp是地址变量 cp接受键入字符串时,必须先开辟存储空间 字符串与数组关系 字符串用一维字符数组存放 字符数组具有一维数组的所有特点 数组名是指向数组首地址的地址常量 数组元素的引用方法可用指针法和下标法 数组名作函数参数是地址传递等 区别 存储格式:字符串结束标志 赋值方式与初始化 输入输出方式:%s %c 指针与函数 函数指针:函数在编译时被分配的入口地址,用函数名表示 用函数指针变量作函数参数 返回指针值的函数 函数定义形式:类型标识符 *函数名(参数表); 例 int *f(int x, int y) 指针数组和多级指针 用于处理二维数组或多个字符串 指针数组 定义:数组中的元素为指针变量 定义形式:[存储类型] 数据类型 *数组名[数组长度说明]; 例 int *p[4]; 多级指针 定义: 指向指针的指针 一级指针:指针变量中存放目标变量的地址 命令行参数 命令行:在操作系统状态下,为执行某个程序而键入的一行字符 命令行一般形式:命令名 参数1 参数2………参数n 指针的数据类型 指针变量的类型说明 一般形式: 存储类型 类型说明符 *指针变量名; 其中*表示这是一个指针变量,类型说明符表示本指针变量所指变量的数据类型。 例如:int *p1; 这里的p1是一个指针变量,它指向整型,它的值是某个整型变量的地址。 例如:static int *p2;float *p3; 注意: 一个指针变量只能指向同类型的变量,例如p3只能指向浮点变量,绝对不能时而指向一个浮点变量,时而又指向一个字符变量。这个类型说明符说明的数据类型不是指针型变量中存放的数据类型,而是它将要指向的变量或数组的数据类型。也就是说定义成某种数据类型的指针变量,将来只能用来指向同种数据类型的其他变量或数组。 说明: 指针变量名的构成原则是标识符。 在一个定义语句中,可以同时定义普通变量、数组、指针变量等。 省略存储类型则默认为自动型(auto)。 定义指针变量的“类型说明符”可以选取任何基本数据类型,也可选取其他数据类型。 #includestdio.h void inv(int *x, int n) { int t,*p,*i,*j,m=(n-1)/2;i=x; j=x+n-1; p=x+m;for(;i=p;i++,j--){ t=*i; *i=*j; *j=t; } } main() { int i,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf(The array has been reverted:\n);for(i=0;i10;i++)printf(%d,,a[i]);printf(\n); } 实参用数组, 3 7 9 11 0 6 7 5 4 2 a[0] a[1] a[2] a[3] a[4] a[5]
您可能关注的文档
- AUTOCAD电子课件(全).ppt
- DGSS-数字填图部分操作(成果数据库之前).ppt
- Displayer展示广告人群定向智能投放系统.pptx
- DK3+368黄河西街大桥施工方案.docx
- AVAYA交换机故障维护.doc
- AVR体系结构(dhl).ppt
- A股H股新三板IPO比较.pptx
- BAT2014财务报表分析副本.ppt
- DM3 顾客定制性销售技巧.pptx
- DMF抽提丁二烯装置工艺简介 - 副本.ppt
- 8 黄山奇石(第二课时)课件(共22张PPT).pptx
- 22《纸船和风筝》教学课件(共31张PPT).pptx
- 17 松鼠 课件(共23张PPT).pptx
- 23《海底世界》课件(共28张PPT).pptx
- 21《大自然的声音》课件(共18张PPT).pptx
- 第12课《词四首——江城子 密州出猎》课件 2025—2026学年统编版语文九年级下册.pptx
- 第2课《济南的冬天》课件(共42张PPT) 2024—2025学年统编版语文七年级上册.pptx
- 17 跳水 第二课时 课件(共18张PPT).pptx
- 第六单元课外古诗词诵读《过松源晨炊漆公、约客》课件 统编版语文七年级下册.pptx
- 统编版六年级语文上册 22《文言文二则》课件(共27张PPT).pptx
最近下载
- 【应急预案】消防事故应急预案(范文).docx VIP
- Canon-Pachelbels Canon 高清钢琴谱五线谱.pdf VIP
- 瞻对工布朗结在康区兴起探析.doc VIP
- 2021年湖北汽车工业学院813固体物理考研真题.pdf VIP
- 人教版八年级上册历史期末模拟考试试卷及答案.doc VIP
- 化妆品喷头泵头类包材质量标准.doc VIP
- 高性能外墙保温系统施工技术及效果评估.docx VIP
- 湖北汽车工业学院 固体物理B卷 2021年考研专业课真题.pdf VIP
- 2025年广西公需科目第三套答案.docx VIP
- 2025-2030中国综合能源服务行业市场深度调研及发展趋势与投资前景研究报告.docx
原创力文档


文档评论(0)