字符常量通常有单引号' '表示。
字符串常量通常用双引号“ ”表示。
例如sizeof('a')=1字节,但是sizeof(“a”)=2,因为系统会默认在a末尾加上\0。
问题来了
sizeof("a\0a")=3+1=4,可是printf打印却是a。那这个字符串到底是什么?
假设 char p[] = "a\0a";则有sizeof(p) = 3+1,因为这个数组总共就是占用3+1个字节。
但是strlen(p)是直到p为空结束,这里到第二个就结束了,所以strlen =1,同理printf也是直到\0结束,所以只打印出a