对字符串应用 `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'},会得到什么值?