标准函数strstr
用于查找字符串中子字符串的位置。函数的两个参数都是const char *
类型,但返回类型是char *
。
我想知道一个标准函数是如何实现违反 const 正确性的。
最佳答案
所有 const char *
都在告诉你 strstr
不会修改你传递给它的字符串。
是否修改返回的字符串由您决定,因为它是您的字符串!
在 C++ 中,这已通过重载方法并具有两个版本进行了更改,const
输入版本具有 const
输出。
在 C 语言中,它没有为您内置的安全级别,并假设您知道自己是否应该修改返回的字符串。
关于c++ - strstr return 如何不是一个常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29827028/