string*或char*?

Al2*_*2O3 0 c++ string pointers char

我在C++代码中读取String*并感到困惑,是否有必要使用String*?我可以使用char*吗?例如StreamReader有ReadLine()函数,为什么不要求用户先安排一个char数组,函数justs将字符串存储在其中,返回一个char*指针,一切正常.

小智 5

请注意,它char*是指向单个字符串或多个字符(字符数组)string*的指针,而是指向单个字符串对象的单个或多个(数组)的指针.但是,C#不支持指向托管类型的指针(例如字符串)

例子:

    unsafe void f()
    {
        char ch = '3';
        char* cPtr = &ch;
        *cPtr = '4'; // ch == '4'
        fixed (char* ccPtr = new char[30])
        {
            *(ccPtr + 15) = '4'; // arr[15] == '4'
        }
        string* ptr; // error: cannot declare a pointer to managed type
        fixed (char* pptr = new string(new char[] { 'a', 'b', 'c' }))
        {
            pptr[2] = 'd';
        }
    }
Run Code Online (Sandbox Code Playgroud)