Shammer's Philosophy

My private adversaria

文字列の配列

Cでは文字列を配列として扱うにはcharの配列をポインタとして宣言するらしい。
こんな感じ。

char* data[] = {"abc", "def", "xyz"};

コマンドライン引数が数値かチェックする際も少し混乱したな。
JavaだとStringクラスがあったけれどCにはないため、常にcharの配列として扱うようだ。
JavaのStringクラスも内部ではchar[]を使っているんだけれども。

言語を勉強していると、なぜこうなるんだ?なぜこうやるんだ?とか考えてしまうことが多いが、
よくわからない場合は「こうするものなんだ」と割り切って進まないと全然先に進めない。
Cではこう書くものなのだろう。配列の先頭アドレスがポインタと同じ働きをしている、
というのをわかっているようでわかっていないっぽい。使いこなせるようになるまで、先は長そうだな・・・