我实现了自己的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;
}
Run Code Online (Sandbox Code Playgroud)
是否有任何理由strcpy将源指针作为const char*而不是char*?
是否有任何理由strcpy将源指针作为char*而不是const char*?
源指针应该是const char *.原因对于所有strcpy不打算在函数内意外更改源的函数(不仅仅是)都很常见.
该实践适用于库函数strcpy或您自己的自定义函数.与库函数一样strcpy,源不会发生意外更改.但对于您自己(或其他所有人)的自定义函数,任何事情都可能发生.如果你意外地修改它,那么你会得到一个编译错误告诉你.而这const正是有所作为的.
| 归档时间: |
|
| 查看次数: |
4146 次 |
| 最近记录: |