将C ++ const char *转换为char *

用户1553248

我有以下函数,最初会对函数参数执行一些验证。

char *doSomething(const char* first, const char* second) {

    if((first == nullptr || *first == '\0') && (second == nullptr || *second == '\0')) {
        return nullptr;
    } else if (first == nullptr || *first == '\0') {
        return (char *) second;
    } else if (second == nullptr || *second == '\0') {
        return (char *) first;
    }
    //doSomething
}

强制转换功能参数是否返回char*指向内存中不同区域的新值?我不想允许使用此功能的人操纵常量参数所指向的值。char*如果一个为nullptr空或为空,我希望返回一个与参数之一相同的值

后续:布尔变量在这里会更好吗?我意识到我要对每个变量执行两次相同的检查,但是在此函数代码的其他任何地方都不会使用此布尔值。

保罗·埃文斯

不,它不会使任何简单的新对象抛弃const到您声明为不可变的内存区域。通常导致可怕的“未定义行为”,但是如果它们来自非const指针,那么您会没事的(编辑-感谢@anatolyg)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C将const char *转换为char

来自分类Dev

将const Char *转换为Char数组

来自分类Dev

将const char **转换为std :: vector <const char *>

来自分类Dev

如何将 const char* 转换为 const unsigned char*

来自分类Dev

将const char **转换为void *?

来自分类Dev

将String ^转换为const char *

来自分类Dev

将const char *转换为QString

来自分类Dev

将Constexpr强制转换为const char []

来自分类Dev

无法将“ TCHAR *”转换为“ const char *”

来自分类Dev

将const char *转换为std :: string

来自分类Dev

无法将'int'转换为'const char *'

来自分类Dev

将(const)char *转换为LPCWSTR

来自分类Dev

将const char *转换为QString

来自分类Dev

无法将“ TCHAR *”转换为“ const char *”

来自分类Dev

将表格CString转换为const char *

来自分类Dev

无法将 QString 转换为 Const Char*

来自分类Dev

在C ++中将wstring转换为const * char

来自分类Dev

如何正确将char ** x强制转换为const char **

来自分类Dev

无法将参数1从char转换为strcmp的const char

来自分类Dev

如何将 const char* 转换为 char[256]

来自分类Dev

将const char *转换为const wchar_t *

来自分类Dev

在C中将const void *转换为const char *

来自分类Dev

C / C ++ strcmp无法将参数1从'char'转换为'const char *'

来自分类Dev

为什么我可以将char *隐式转换为const char *,而不是无符号char *

来自分类Dev

C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

来自分类Dev

C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

来自分类Dev

在编译时将const char *转换为const char_type *

来自分类Dev

从const char arr []转换为char **

来自分类Dev

如何将System :: String转换为const char *?

Related 相关文章

热门标签

归档