[解決済み] 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
を修正することもできません。
関連
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] std::string を const char* または char* に変換する方法
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] リファレンスとポインタの使い分け
-
[解決済み] 1行のifやループに中括弧(={})を使用する目的は何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み] なぜ 'this' はポインターで、参照ではないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] const char*, char const*, const char const* & 文字列ストレージの違い
-
[解決済み】char * constとconst char *の違いは何ですか?