




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章 指针的深入研究指针进阶 p 指针与数组 p 指针与字符串 p 综合应用报数游戏 p 跟我上机 第12章 指针的深入研究指针进阶 指针与数组 p 指针与字符串 p 综合应用报数游戏 p 跟我上机 第12章 指针的深入研究指针进阶 指针与数组 指针与字符串 p 综合应用报数游戏 p 跟我上机 第12章 指针的深入研究指针进阶 指针与数组 指针与字符串 综合应用报数游戏 p 跟我上机 第12章 指针的深入研究指针进阶 指针与数组 指针与字符串 综合应用报数游戏 跟我上机 12.1 指针与数组 12.1.1 指针与数组 12.1.2 数组名作为指针 12.1.3 指针与多维数组 12.1.4 指针与数组参数 12.1.1 指针与数组 指针用于存储地址,他和数组名紧密的联系 在一起。 下图就显示了一个数组名称为grade,包含 5个整型数据的一维数组,这里每个整型元 素占用4个字节。 12.1.1 指针与数组 访问数组元素,我们可以使用下标来实现,比如我 们要访问数组元素grade3,在之前的章节里我 们详细的讲解过,但是那时使用的方法其实隐藏了 数组每一个元素的地址。根据之前讲过的地址的概 念,加之我们已知的数组的特点,这个特点就是数 组在内存总占用一块连续的存储区域,这样的话, 如果我们知道数组的首地址,针对grade这个数组 ,就是已知grade0的地址,我们就可以通过增 减偏移量,得到garde3的地址,从而访问到 garde3的元素值 12.1.1 指针与数组 /*定义array为包含5个整型数据的数组*/ int *p; /*定义p为指向整型变量的指针变量*/ p= 12.1.1 指针与数组 【范例12-1】 使用指针访问数组元素,分别使用下标和指针访问数 组元素 01 #include 02 int main(void) 03 04 int i; 05 int grade=2,5,9,4,6; 06 int *p; 07 p= /*指针指向*/ 08 printf(“使用下标访问数组元素:n“); 09 for(i=0;i 02 int main(void) 03 04 int i; 05 int grade=2,5,9,4,6; 06 int *p; 07 p=grade; /*指针赋值*/ 08 printf(“使用数组名访问数组元素:n“); 09 for(i=0;i 02 int main(void) 03 04 char *p,s6; 05 int n; 06 n=0; 07 p=s;/*字符指针p指向字符数组s*/ 08 printf(“输入你要转换的八进制数:n“); 09 gets(p);/*输入字符串*/ 10 while(*(p)!=0) /*检查指针是否都字符数组结尾*/ 11 12 n=n*8+*p-0; /*八进制转十进制计算公式*/ 13 p+; /*指针后移*/ 14 15 printf(“转换的十进制是:n%dn“,n); 16 return 0; 17 12.2.2 使用指针处理字符串 【范例12-8】 字符串复制 01 #include 02 int main(void) 03 04 char str110,str210; 05 char *p1,*p2; 06 p1=str1; 07 p2=str2; 08 printf(“请输入原字符串:n“); 09 gets(p2); 10 for (; *p2!=0;p1+,p2+) /*循环复制str2中的字符到str1*/ 11 *p1=*p2; 12 *p1=0; /*str1结尾补0*/ 13 printf(“原字符串是 :%sn复制后字符串是:%sn“,str2,str1); 14 return 0; 15 12.2.2 使用指针处理字符串 这道题目声明了两个字符串的指针,通过指针移动 ,赋值字符串str2中的字符到str1,并且在str1结 尾添加了字符串结束标志。需要说明以下两点: 如果题目中没有使用指针变量,而是直接在for 循序中使用了str1+这样的表达式,程序就会出 错,因为str1是字符串的名字,是常量; 如果没有写*p1=0;这行代码,输出的目标字 符串长度是9位,而且很可能后面的字符是乱码, 因为str1没有结束标志,直至遇见了声明该字符串 时设置好的结束标志“0”。 12.2.2 使用指针处理字符串 【范例12-9】 字符串连接。 12.2.2 使用指针处理字符串 【范例12-10】 已知一个字符串,使用返 回指针的函数,实现这样的功能,把该字符 串中的“#”号删除,同时把后面连接的字符 串前移。 12.2.3 指针的指针 【范例12-11】 使用指针的指针访问字符串数组。 01 #include 02 int main(void) 03 04 char *array=“Winter“,“Spring“,“Summer“,“Fall“; 05 char *p; /*指针的指针*/ 06 int i; 07 for(i=0;i 02 int main(void) 03 04 int array23=1,2,3,4,5,6; 05 int i,j; 06 int (*p)3; 07 p=array; /*p指向array下标为0那行的首地址*/ 08 for(i=0;i2;i+) 09 10 for(j=0;j3;j+) 11 printf(“array%d%d=%dn“,i,j,pij); 12 13 return 0; 14 12.3 综合应用报数游戏 【范例12-13】 有n个人围成一圈,顺序 排号。从第一个人开始报数(从1到3报数) ,凡报到3的人退出圈子,问最后留下的那 位是原来的第几号。 12.5 跟我上机 1. 编写C程序,使用指针,实现以下功能: 编一个函数fun(char *s),函数的功能是把字符串 中的内容逆置。 如:字符串中原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建厦门红宝石投资管理有限公司社会招聘1人笔试历年参考题库附带答案详解
- 2025河南南阳财和投资有限公司招聘(第七号)笔试历年参考题库附带答案详解
- 2025年福建省晋江水务集团有限公司招聘项目制工作人员11人笔试历年参考题库附带答案详解
- 2025年江西上饶市信州区国瑞投资控股有限公司招聘(补录)1人(第一次)笔试历年参考题库附带答案详解
- 2025四川绵阳市九州电子科技股份有限公司招聘智能制造工程师测试笔试历年参考题库附带答案详解
- 2025年福建省龙岩市武平县事业单位招聘5人考前自测高频考点模拟试题有完整答案详解
- 2025年河北唐山芦台经济开发区事业编制教师人员2名模拟试卷及参考答案详解
- 2025呼伦贝尔农垦集团有限公司校园招聘44人模拟试卷及答案详解(名校卷)
- 2025江西南昌动物园百花园管理所招聘3人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025年河北沧州南皮县中医医院公开招聘工作人员16名考前自测高频考点模拟试题及答案详解(名校卷)
- 2025四川宜宾市退役军人事务局招聘临聘人员2人考试参考题库及答案解析
- 高考语文 热点04 现代文阅读II之理论与文本互证类题(解析版)
- 预制混凝土检查井采购合同模板
- 2025年中小学《国庆节、中秋节》放假通知及安全提示
- 致敬 9.3:一场阅兵一部民族精神史诗
- (完整版)室外散水专项方案
- 智能物流行业智能化运输装备应用前景研究报告
- 2025云南黄金矿业集团股份有限公司第二次招聘8人笔试备考试题及答案解析
- 三级眼科医院评审标准实施要点
- 化疗药物使用顺序课件
- 车位退还协议书
评论
0/150
提交评论