对字符串应用 `strlen()` 和 `sizeof()` 的不同点
sizeof
是编译时的一元运算符,用于计算操作量的 size;strlen()
则是运行时的函数,定义于 string.h
中,虽然都有计算大小这种功能,但他们概念不同,使用场景也不同。
sizeof
返回size_t
类型,可以应用在任何类型上,int 可以,struct 也可以。strlen()
返回size_t
类型,应用在一个指向数组的指针,运行的时候它会数内存地址,直到遇到了 NULL。这个函数的主要任务是算字符串长度(不包括 \0)- 上面提到的编译时和运行时是个很大的区别,这意味着 sizeof 不关心具体值,它只关心 type 的 size, 而 strlen 关心的是运行时的 C-style NULL-terminated string 具体值的长度。
课后习题:将 strlen 应用于 {'G','e','e','k','s',' ','f','o','r'}
,会得到什么值?