在fun1()中我得到一个字符串,我需要将这个字符串数据传递给函数fun2(),它接受参数char*
function2原型如下
void fun2(char *p);
Run Code Online (Sandbox Code Playgroud)
我从fun1调用fun2,如下所示
void fun1()
{
fun2((char *)str.c_str());
}
Run Code Online (Sandbox Code Playgroud)
从const char*到char*的转换是否存在任何潜在问题
当我尝试下面的代码时,我得到了奇怪的结果.我试图通过使用指针来改变常量的值.但是当我输出结果指针值和原始变量变量值时,它给出了两个不同的值.任何人都可以解释究竟发生了什么.显式转换发生了吗?
int main()
{
int *p ;
const int a = 20;
p=(int *)&a;
*p = *p +10;
cout<<"p is"<<*p<<"\na is"<<a;
}
Run Code Online (Sandbox Code Playgroud)
输出:p是30 a是20