string,const char*, char*转换之后还是指向同一片内存地址么?

class Same {
public:
    void reverse(const char* str)
    {
        char* A = const_cast<char*>(str);
        A[0] = '1';

        printf("%u\n",A);
        printf("%u\n",str);
        return;
    }
};


int main()
{
    Same re;
    string str = "This is nowcoder";
    printf("%u\n", &str);
    re.reverse(str.data());
    cout<< str << "  " << endl;
    return 0;
}

为什么str的值被修改了呢?

猜你喜欢

转载自www.cnblogs.com/yiyi20120822/p/11373291.html