thisdesuのブログ

C言語はじめました

にほんブログ村 IT技術ブログ C/C++へ

文字列(string)の闇

C言語の型として1文字の「文字」(char)は有りますが、連続した文字の「文字列」という型は存在しません。しかしC言語を使ってシステムを作成するには文字列を避けて通れません。数字のみの学術系なら別ですが。
この文字列を表現するのに、連続した文字(char)の領域を利用し、先頭から文字を設定し終わり表す値(0x00)別名ヌル(null)を設定し、先頭からnullまでの連続した領域を文字列として表現しています。注意点は文字列の終わりがnullとしているだけで領域の終わりを指していません。またnullを設定する領域も必要です。ここ勘違いするとstringの闇にはまります。
ちなみにヌルは、ただの0です。0x00は16進数で書いてますが、10進数で書けば0です。アドレスの0番地をヌルポインターとも呼んでます。