文字列定数の表現

" " で囲む表現をしている情報は、 文字列定数と呼ばれます。
文字列定数は、 " "の間に並ぶ文字をメモリー上に並べて、 その並べた先頭文字の存在する位置を表現しているデータです。
(このように位置を表現しているデータはポインタと呼ばれます。)

この文字列定数は、 " で始まり、終わりを " で指定するため、 内部で直接に " の文字を表現することはできません。
" の文字を内部で表現するには、 \ " の2つの文字を並べて、 1つの " を表現します。

このように文字列定数の中では、 \は、特別な意味を持ちます。
一つの改行コードを表現する場合にも \ の文字と nの文字を並べて一つの特殊文字を表現しました。
このように、 \と、それに続く文字で表現するスタイルをエスケープシーケンスと呼びます。

\のエスケープシーケンスには、\n以外にも\t で表現するタブや、 \0に続く8進数や、  \xに続いた2桁の16進数で文字コードを直接指定する方法などがあります。
また、一つの \を文字列定数内に埋め込む場合も、 \\と2つ並べたエスケープシーケンスの表現を必要とします。  以下に例を示します。

fprintf(stdout, "\\と\"を2つ並べて一つの\"になります。\n");
fprintf(stdout, " 8進数表現\141,\142,\143,\144\n");
fprintf(stdout, "16進数表現\x61,\x62,\x63,\x64\n");
\と"を2つ並べて一つの"になります。         
 8進数表現a,b,c,d
16進数表現a,b,c,d

a の文字のASCIIコードは16進で 61になっています。