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