- 281
- 0
- 约1.84万字
- 约 102页
- 2018-11-12 发布于广西
- 举报
第十章 10.1地址和指针的概念 10.2 变量的指针和指向变量的指针变量 10.4.2 字符指针作函数参数 例10.110 用函数调用实现字符串的复制 #include stdio.h void main() {void copy_string(char *from, char *to); char *a=I am a teacher.; char b[]=You are a student.; char *p=b; printf(string a=%s\nstring b=%s\n,a,p); printf(copy string a to string b:\n ); copy_string(a,p); printf(\nstring a=%s\nstring b=%s\n,a,b); } (1) 用字符数组作参数 void copy_string(char *from, char *to) { for(;*from!=\0;from++,to++) {*to=*from;} *to=\0; } 程序运行结果如下: string a=I am a teacher. string b =You are a student. copy string a to string b: string a =I am a teacher. stringb=I am a teacher. 1、将copy_string函数改写为 void copy_string (char *from,char *to) {while((*to=*from)!=′\0′) {to++;from++;} } 对copy_string函数还可以改写得更精练一 些,请分析以下几种情况: 2、 copy_string函数的函数体还可改为 { while((*to++=*from++)!=′\0′); } 3、copy_string函数的函数体还可写成 { while(*from!=′\0′) *to++=*from++; *to=′\0′; } 4、由于字符可以用其ASCII码来代替所以函数体可简化为: {while(*from) *to++=*from++; *to=′\0′; } 5、上面的while语句还可以进一步简化为下面的while语句: while(*to++=*from++); 它与下面语句等价: while((*to++=*from++)!=′\0′); 将*from赋给*to,如果赋值后的*to值等于′\0′则循环终止(′\0′已赋给*to) 6、函数体中while语句也可以改用for语句: for(;(*to++=*from++)!=0;); 或 for(;*to++=*from++;); 7、也可以用字符数组名作函数形参,在函数中另定义两个指针变量p1,p2。函数copy_string可写为 void copy_string (char from[ ],char to[ ]) {char*p1,*p2; p1=from;p2=to; while((*p2++=*p1++)!=′\0′); } 10.4.3 对使用字符指针变量和字符数组的讨论 字符数组和字符指针变量二者之间的区别主要有以下几点: (1) 字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址),决不是将字符串放到字符指针变量中。 (2)赋值方式。对字符数组只能对各个元素赋值,不 能用以下办法对字符数组赋值。 char str[14]; str=″I love China!″; 而对字符指针变量,可以采用下面方法赋值: char*a; a=″I love China!″; (3)对字符指针变量赋初值: char *a=″I love China!″;等价于 char*a; a=″I love Chian!″; 而对数组的初始化: char str[14]={″I love China!″}; 不能等价于 char str[14]; str[ ]=″I love China!″; (4) 定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,在其中可以放一个字符变量的地址。 例如: char str[10]; scanf
您可能关注的文档
- 《_酸碱盐复习》课件.ppt
- 《_乌鸦喝水课件》课件.ppt
- 《_乌鸦喝水课件00》精选·课件.ppt
- 《_最后一头战象》课件.ppt
- 《“罢黜百家独尊儒术”》课件.ppt
- 《_希腊、罗马与欧洲古典文化》课件.ppt
- 《“帮得佳”产品推广活动操作指引》课件.ppt
- 《“红灌”王老吉品牌战略相关环境分析》课件.ppt
- 《“华府”牌安全轮胎》课件.ppt
- 《“空间与图形”》课件.ppt
- 住院医师规范化培训《全科医学》复习题(含参考答案).docx
- 5月住院医师规范化培训《妇产科》模考试题(附参考答案解析).docx
- 6月住院医师规范化培训《口腔内科》考试.docx
- 微型电机行业专题报告:灵巧手是Optimus Gen3最大边际变化,微型电机成为兵家必争之地.docx
- 通信行业2026年投资策略:商业航天建设期主线确立,AI算力提供景气强化.docx
- 八年级语文下册整本书阅读《经典常谈》阅读理解测试题(原卷+答案解释)2025-2026学年第二学期 统编版.docx
- 七年级语文下册整本书阅读《钢铁是怎样炼成的》基础知识测试题(原卷+答案解释)2025-2026学年第二学期 统编版.docx
- 七年级语文下册整本书阅读《钢铁是怎样炼成的》阅读理解运用 测试(原卷+答案解释)2025-2026学年第二学期 统编版.docx
- 七年级语文下册整本书阅读《骆驼祥子》基础知识测试题(原卷+答案解释)2025-2026学年第二学期 统编版.docx
- 八年级语文下册整本书阅读《经典常谈》基础知识测试题(原卷+答案解释)2025-2026学年第二学期 统编版.docx
最近下载
- 《工业控制系统简介》课件.ppt VIP
- 村委员竞选演讲稿汇总7篇.docx VIP
- 客户服务管理.ppt VIP
- 给排水国标图集-04S520:埋地塑料排水管道施工.pdf VIP
- 小学生主题班会通用版《珍爱生命,远离毒品》课件(共24张PPT+视频).pptx VIP
- 聚集性事件、药品群体不良事件调查处置标准操作规程.docx VIP
- 团圆绘本教学省公开课一等奖全国示范课微课金奖PPT课件.pptx VIP
- 2026年度江苏旅游职业学院单招《数学》综合提升测试卷及答案详解(典优).docx VIP
- 2025至2030中国烟草包装行业发展研究与产业战略规划分析评估报告.docx VIP
- 青岛天信BPJ-500-1140矿用隔爆兼本质安全变频器说明书.pdf VIP
原创力文档

文档评论(0)