第八章:指针06

让编程改变世界

Change the world by program


字符指针作函数参数

出错了:关于a[]和*a的一些区别! [codesyntax lang="c"]

#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 b[] = "You are a student.";//区别两者反汇编代码并解释其意义//谈谈五个区!printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char *from, char *to )
{for( ; *from != '�'; from++,to++){*to = *from;}*to = '�';
}

[/codesyntax]

优化:对 copy_string 函数还可作简化

方法一

[codesyntax lang="c"]

#include <stdio.h>void  main()
{void copy_string( char *from, char *to );char *a = "I am a teacher.";char b[] = "You are a student.";printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char *from, char *to )
{while( (*to = *from) != '�' ){to++;from++;}
}

[/codesyntax]

方法二

[codesyntax lang="c"]

#include <stdio.h>void  main()
{void copy_string( char *from, char *to );char *a = "I am a teacher.";char b[] = "You are a student.";printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char *from, char *to )
{while( (*to++ = *from++) != '�'){;}
}

[/codesyntax]

方法三

[codesyntax lang="c"]

#include <stdio.h>void  main()
{void copy_string( char *from, char *to );char *a = "I am a teacher.";char b[] = "You are a student.";printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char *from, char *to )
{while( *from != '�' ){*to++ = *from++;}*to = '�';
}

[/codesyntax]

方法四

[codesyntax lang="c"]

#include <stdio.h>void  main()
{void copy_string( char *from, char *to );char *a = "I am a teacher.";char b[] = "You are a student.";printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char *from, char *to )
{while( *to++ = *from++ ){;    // '�' == 0}
}

[/codesyntax]

方法五

[codesyntax lang="c"]

#include <stdio.h>void  main()
{void copy_string( char *from, char *to );char *a = "I am a teacher.";char b[] = "You are a student.";printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char *from, char *to )
{for( ; *to++ = *from++; ){;}
}

[/codesyntax]

方法六

[codesyntax lang="c"]

#include <stdio.h>void  main()
{void copy_string( char *from, char *to );char *a = "I am a teacher.";char b[] = "You are a student.";printf("String a = %snString b = %sn", a, b);printf("copy string a to string b:n");copy_string(a, b);printf("nString a = %snString b = %sn", a, b);
}void  copy_string( char from[], char to[] )
{char *p1, *p2;p1 = from;p2 = to;while( (*p2++ = *p1++) != '�' ){;}
}

[/codesyntax] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LHAPZBNXYNES']视频下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2011/02/11/3847022.html

指针06 - 零基础入门学习C语言46相关推荐

  1. 指针05 - 零基础入门学习C语言45

    第八章:指针05 让编程改变世界 Change the world by program 字符串与指针 (1) 用字符数组存放一个字符串,然后输出该字符串. 例题一:定义一个字符数组,对它初始化,然后 ...

  2. 指针01 - 零基础入门学习C语言41

    第八章:指针01 让编程改变世界 Change the world by program 指针啥玩意?似乎很神秘? 指针是C语言中的一个重要的概念,也是C语言的一个重要特色. 正确而灵活地运用它,可以 ...

  3. 指针02 - 零基础入门学习C语言42

    第八章:指针02 让编程改变世界 Change the world by program 对"&"和"*"运算符再做些说明 如果已执行了语句 point ...

  4. 指针07 - 零基础入门学习C语言47

    第八章:指针07 让编程改变世界 Change the world by program 对使用字符指针变量和字符数组的讨论 虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有 ...

  5. 指针08 - 零基础入门学习C语言48

    第八章:指针08 让编程改变世界 Change the world by program 返回指针值的函数 一个函数可以带回一个整型值.字符值.实型值等,也可以带回指针型的数据,即地址. 其概念与以前 ...

  6. 指针04 - 零基础入门学习C语言44

    第八章:指针04 让编程改变世界 Change the world by program 小结 归纳起来, 如果有一个实参数组, 想在函数中改变此数组中的元素的值, 实参与形参的对应关系有以下4种情况 ...

  7. 零基础入门学习C语言

    注:这些都是我辛苦找的资料,希望能对大家有帮助,然后就是大家选择性的下载!我个人推荐小甲鱼20G的那个,一整套!还带工具和众多电子书!全部都是免费的! 郝斌先生的视频讲解也很仔细,但是没有实践作业布置 ...

  8. 文件操作01 - 零基础入门学习C语言60

    第十一章:文件操作01 让编程改变世界 Change the world by program C文件概述 所谓"文件"是指一组相关数据的有序集合.这个数据集有一个名称,叫做文件名 ...

  9. 零基础入门学习C语言011讲:结构体与共用体(4)链表

    链 表 什么是链表? 链表是一种常见的重要的数据结构,是动态地进行存储分配的一种结构. 链表的组成: 头指针:存放一个地址,该地址指向第一个元素 结点:用户需要的实际数据和链接节点的指针 我们尝试根据 ...

最新文章

  1. 域的非验证方式还原与验证方式还原的区别
  2. cv2.calcOpticalFlowFarneback integer argument expected, got float
  3. 论信息部门与业务部门的关系
  4. C++ MFC常用函数(转)
  5. Qt学习笔记-编写简易的音乐播放器
  6. 百度启用Baidu.co.jp域名,有利于其在日本推广
  7. Java毕业设计-社区疫情防控管理系统
  8. 小学数学思维导图集合 小学数学思维导图怎么画
  9. OpenDrive地图格式解析——案例分析
  10. typora 有道云笔记_利用神器Typora+PicGo,实现有道云不用会...
  11. java des ecb_java DES ECB模式对称加密解密
  12. 国标28181:jrtplib从编译到使用
  13. eclipse SVN A conflict in the working copy obstructs the current operation
  14. 一种自动反射消息类型的 Google Protobuf 网络传输方案
  15. 全国计算机等级AJIL,全国计算机二级VB知识点2015第一次课
  16. RAID知识以及利用率
  17. 用python对某校园热水服务app进行测试,实现自动免费用水(仅供参考)
  18. 2023开年第一涨!有省市IDC电费拟环比上浮23.41 %
  19. 【ChatGPT】中国支付清算协会倡议支付行业从业人员谨慎使用ChatGPT
  20. 清除css万能浮动代码

热门文章

  1. S5PV210的启动过程
  2. 用python给女朋友惊喜100天快乐_100天从 Python 小白到大神最良心的学习资源!
  3. layui 日期重置_日期时间插件--日期时间组件文档 - layui.laydate
  4. Linux系统TCP内核参数优化总结
  5. 第三届Apache Flink 极客挑战赛暨AAIG CUP攻略发布!
  6. 官宣|Apache Flink 1.13.0 正式发布,流处理应用更加简单高效!
  7. Flink SQL 在网易云音乐的产品化实践
  8. 浅谈阿里云混合云的探索与实践
  9. 阿波罗登月51周年,程序员用DAIN技术还原阿波罗登月高清影像,效果震撼
  10. Java 的这些坑,你踩到了吗?