- 820 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 16:07:04 ]
- たぶんシングルクォートの文字列は
char foo[] = {'f', 'o', 'o', '\0'}; /* '\0'は'\000'または'\x00'などと同じnull character(JISではNULと表記される)を表す */ だと思う、シングルクォートは文字定数を表記するときによく使われる、そのほかの目的でも使うことはある ダブルクォートの例は char bar[] = "bar"; /* {"baz"};とかくこともできる */ char *baz = "baz"; ダブルクォートで囲んだ場合、文字列リテラル(文字列定数)と呼ばれる この場合、コンパイラは気を利かせてnull characterを付けてくれる したがって、sizeof(bar)は4となる しかしながら char hog[3] = "hog"; の場合、コンパイラは気を利かせてnull characterを追加しない、つまり char hog[] = {'h', 'o', 'g'}; /* char hog[3] でもよい*/ とした場合と同じ結果となる と長々書いているうちに解決していたでござるの巻
|

|