如何在c ++中将字符串转换为const void*?

Ash*_*ish 3 c++ string

我有一个方法,其中一个参数需要const void*输入.

当我这样做,它的工作原理 -

const void *a = "abc"; \\abc is also a string though.
Run Code Online (Sandbox Code Playgroud)

我已经尝试将一个字符串变量赋值给const void*变量,但它给出了一些错误.为什么我不能直接将字符串变量赋值给const void*变量?

如何将字符串转换为const void*

还有其他方法吗?

谢谢,

Mik*_*our 8

如果用"string"表示std::string,那么这是一个类类型,它不能直接转换为指针.字符串文字就像"abc"是一个字符数组,可以转换为指针.

如果你想要一个指向字符串字符数组的指针,那么你可以通过c_str函数访问它:

const void * a = my_string.c_str();
Run Code Online (Sandbox Code Playgroud)

请注意,如果销毁或修改字符串,指针可能会变为无效.