C言語ではstrlen("abc")が3でsizeof("abc")が4だった件

"abc"という表現は、暗黙的に末尾に'\0'が含まれているようです。
#include <stdio.h>
#include <string.h>

int main() {
  printf("%d\n", (int)strlen("abc"));
  printf("%d\n", (int)sizeof("abc"));
  return 0;
}
実行結果
3
4
"abc"という文字列は'a','b','c','\0'で構成されており、3文字(strlen("abc")の戻り値は3)だが、実際に使われているのは4バイト(sizeof("abc")の値は4)。

http://www.ne.jp/asahi/hishidama/home/tech/c/c.html
なるほど。
カテゴリ: