gpt4 book ai didi

c - 为什么 strcpy 采用 const char* 作为 src 而不是 char *?

转载 作者:行者123 更新时间:2023-11-30 18:17:52 26 4
gpt4 key购买 nike

我实现了自己的 strcpys 来查找 src 作为 const char* 和 char * 之间是否有任何区别,但没有发现以下 2 个之间有任何区别,并且两者的工作原理相同。

char * my_strcpy(char*dest, char* src)
{
while ('\0' != *src)
*dest++ = *src++;
*dest++ = '\0';
return dest;
}

char * my_strcpy2(char*dest, const char* src)
{
while ('\0' != *src)
*dest++ = *src++;
*dest++ = '\0';
return dest;
}

strcpy 将源指针视为 const char* 而不是 char* 是否有任何原因?

最佳答案

Is there any reason that the strcpy takes the source pointer as char* instead of const char*?

源指针应该是const char *。对于所有不打算在函数内部意外更改源的函数(不仅仅是 strcpy)来说,原因很常见。

这种做法适用于 strcpy 等库函数或您自己的自定义函数。与 strcpy 这样的库函数一样,源代码不可能被意外更改。但对于您自己(或其他人)的自定义函数,任何事情都可能发生。如果您不小心修改了它,那么您会收到一个编译错误告诉您这一点。这就是 const 发挥作用的时候。

关于c - 为什么 strcpy 采用 const char* 作为 src 而不是 char *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35011815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com