1. ホーム
  2. c++

[解決済み] const char * const vs const char *?

2022-08-24 09:29:40

質問

C++に慣れ親しむために、いくつかのサンプルプログラムを実行しているのですが、以下のような質問に遭遇しました。 まず、サンプルコードです。

void print_string(const char * the_string)
{
    cout << the_string << endl;
}

int main () {
    print_string("What's up?");
}

上記のコードでは、print_stringへのパラメータは、代わりに以下のようにすることができます。 const char * const the_string . これはどちらがより正しいでしょうか?

一方は定数文字へのポインタであり、もう一方は定数文字へのポインタであるという違いは理解しました。 しかし、なぜ両方が機能するのでしょうか? どのような場合に関係するのでしょうか?

どのように解決するのですか?

後者では the_string の内部で print_string . これは実際にはここで適切なのですが、おそらく冗長性が開発者を遠ざけたのでしょう。

char* the_string : を変更することができます。 char the_string を指しているのか、そして char を修正することができます。

const char* the_string : を変更することができます。 char the_string を指しているものは変更できますが char を修正することはできません。

char* const the_string : を変更することはできません。 char the_string を指しているものを変更することはできませんが char を修正することができます。

const char* const the_string : を変更することはできません。 char the_string を指しているのか、また char を修正することもできません。