总结:在实现mystrcat函数模拟strcat功能时,由于在printf中调用了两次mystrcat(str,dst),导致字符串被重复拼接。关键认知误区在于误以为printf中的函数参数仅用于返回值,实际上每次调用都会执行函数体。因此需要注意:函数名加参数的形式(如mystrcat(str,dst))本身就是一次完整调用,调用几次就执行几次函数操作。
题目:封装mystrcat函数实现strcat功能
完整代码:
问题?实现功能了,为什么拼接了两遍。
原因:我将mystrcat函数调用了两遍。所以mystrcat函数体运行了两遍。
我模糊概念:我以为将mystrcat函数写在printf只是打印这个函数返回的值,不曾想这样就算调用了函数。
注意事项:当我们写出mystrcat(str,dst)就是运行该函数体。写一次运行一遍。