在32位编译系统中,字符型变量占1个字节,则sizeof("\0") 、strlen("\0")分别为()A.1 2 B.2 1 C.2 0 D. 2 2
求大侠详细解释
sizeof("\0")=2
sizeof是编译器在编译时计算,计算括号中内容的大小,注意,这和地址没关系,因为这发生在编译期
那么"\0"是多大呢?\0是1个字符,再加上一个字符结束符(也是\0),共2个。
如果有疑问的话,自己试一下sizeof("a"),sizeof("\0a")等就明白了,从这里可以发现,字符串中间是可以有\0的。
strlen("\0")=0
这个只要知道strlen是怎么计算字符串长度的就可以很容易得出答案了,该"\0"大小为2,且两个都是\0,遇到第一个\0就结束了,所以是0
2 0
sizeof() \ 0 算个2字符
strlen遇到\0结束