• ベストアンサー

書式文字列

書式文字列と文字列リテラルの意味の違いがわかりません。おしえていただけないでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • rentahero
  • ベストアンサー率53% (182/342)
回答No.3

書式指定文字列とは特定の関数で用いられる、入出力形式を指定するための文字列のこと。 具体的には、printf系やscanf系などの「関数」が解釈する文字列を指しているポインタのこと。 文字列リテラルとは、ソースファイル上に直接記入される定数として利用される文字列のこと。 具体的には、コンパイラが直接解釈してリンカが配置する整数定数式のこと。プログラム中では、アドレス定数式として扱われる。 書式指定文字列もソースファイル上に直接定数式として書き込んだ場合、文字列リテラルの一種。 ちょっとややこしいので、わからない点は遠慮なくこの回答に補足の形で質問してください。

その他の回答 (2)

noname#30727
noname#30727
回答No.2

「"」ダブルコーテーションでくくられたものが文字列リテラルです。 printf("%d", 10); "%d"は文字列リテラルで、そのままprintfの書式文字列になります。 char *fmt = "%d"; printf(fmt, 10); この場合のprintfに渡すfmtは、printfの書式文字列ですが、文字列リテラルではありません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

printfなどでいう話だと思いますが 書式文字列は、%で始まる、引数の出力(scanfでは入力)の書式を指示するものです。 それ以外の、そのまま使われる文字列は、リテラルです。

関連するQ&A