一个自创完整的 “my_strcpy” 函数

在这里 一个完整的字符copy函数,会有各种结合;

这里首先 1.需要创造2个数组,以提供copy 原代码;

2.在这里很好的用了一个“assert”的函数;这个函数主要是能够在满足条件下给我们进行一个报错的功能;提示我们代码的错误和缺陷,也是我们对代码进行优化的一种选择;

                3.

这里我们又进行了一步优化; 首先能够把我们的copy的字符放在待放入的数组空间当中去;在进行判断;实际上它是这样一段代码优化过来的:

 4. 这里要说一下const这个变量的做用:

下面给出两中代码的比较;

         

const:        一. 定义:const 修饰的数据类型是指常类型;常类型的变量或对象的值是不能被更新的;

                    二. 在这里可以理解为:1. const 放在指针变量 * 的左边时,修饰的是 *p,也就是说:不能通过 p 来改变*p(a) 的值;

                                                          2. const 放在指针变量 * 的右边时,修饰的是指针变量 p 本身,p不能被改变了;

所以在这里的const 是为了使被copy的字符 copy到待放copy字符当中; 不使他改变;如果这里吧 while的条件改成  while(*src++=*dest)  代码调试的时候会报错;这时能给迅速给出错误; 这也是我们优化的一个点

 

最后  函数指针返回;用一个char*进行返回  而返回的是目的地的起始值地址;在上面的*dest++已经很靠后了;所以下面我们可以进行下面的操作;

现在第一次把dest保存到*ret中;最后我们直接 返回   return ret ;   因为返回的是目的地的起始地址   所以返回后代码可以这样写:                                                                                         printf("%s\n",my_strcpy(arr1, arr2));  这是链式访问。

     

 

 

                                                         

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值