まぁ、簡単にまとめておく。
■文字変数
Cには文字列変数はなく文字変数のみが存在する。他の言語よりも扱いにくいけど低レイヤーを感じられる。
int main(int argc, char *argv[]) { char c = 'a'; printf("%c", c);// a }
当然、日本語は扱えない。低レイヤー万歳!
int main(int argc, char *argv[]) { char c = 'a'; c++; printf("%c", c); // b }
上述のようにするとASCIIでaの次にあるbが表示される。
■文字列
文字変数を並べれば文字列になるという考え方で配列によって表現される。
int main(int argc, char *argv[])
{
char str[] = "this is a pen.";
printf("%s", str);
}
[/sourcecode]
一応、配列なので以下のように書くこともできる。
int main(int argc, char *argv[])
{
char str[] = {‘t’, ‘h’, ‘i’, ‘s’, ‘ ‘, ‘i’, ‘s’, ‘ ‘, ‘a’, ‘ ‘, ‘p’, ‘e’, ‘n’, ‘.’, ‘\0’};
printf("%s", str);
}
[/sourcecode]
末端文字などの文化はObjective-Cにも受け継がれていたりする。