在这里 一个完整的字符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)); 这是链式访问。