0

私は、誰かが私がすでに遭遇したものよりも簡単な言葉で説明できることを願っています。取り組みながら

C++ のツアー (第 2 版)

私はいくつかの例を試してきました。

現在、別の関数で文字列リテラルへのポインターを変更しようとしています (簡単だと思いました.....)。

using namespace std;

void test(char *ptr)
{
    ptr = "test";
}

int main()
{
    char *p = "abc";
    test(p);
    cout << p << "\n";
    return 0;
}

g++ を使用してコンパイルすると、

警告: ISO C++ は、文字列定数を char* に変換することを禁止しています

どうやらg ++は* pをconstに自動変換していますか? 確かに基本的なものが欠けていますが、以前の SO と Google の検索では答えに近づきませんでした。ご回答ありがとうございます。

編集:以下の両方の素晴らしい例。みなさん回答ありがとうございます、とても参考になります!

4

2 に答える 2