目录
1. 什么是sizeof
2. 什么是strlen
strlen和sizeof的区别:
1. 什么是sizeof
sizeof是一个运算符,其值在编译期间就已经计算好了,其参数可以是数组、类型、对象、函数等。
功能:计算该参数所占空间的最大字节
由于在编译期间就发生了计算,因此sizeof只能计算非动态的对象,sizeof的返回值和传入参数的内容无关,并且其返回值是size_t类型,也就是unsigned int 类型。
strlen是一个函数,其值是在运行时候被计算,strlen的参数必须是char*类型
功能:计算遇见'\0'之前的所有字符个数
strlen和sizeof的区别:
- sizeof是运算符可以不需要添加括号,而strlen是函数必须添加括号
- sizeof可以以类型来作为参数,而strlen只能是char*作为参数
- 数组作为sizeof的参数时不进行退化,而作为strlen的参数时会退化成char*指针
- strlen的大小是在运行时被计算出来的,而sizeof的大小是在编译时就被计算
- sizeof计算的是整个参数所占空间大小,而strlen计算的是遇见'\0'之前的所有字符个数