string的有关问题,有点怪

string的问题,有点怪
现在我有个string,当我在一个函数里面调用这个string对应的char   *时,编译器提示:不能将const   char   *   转化为   char   *,这是怎么回事,并且这种情况怎么处理,还有就是一个string调了c_str()之后,下一次是不是调用char   *的字串时,还得用c_str()函数?

------解决方案--------------------
static_cast <char*> (...)
------解决方案--------------------
引用传就是
void fun(const string& str);
而不是
void fun(char* cc);