1 sizeof
- sizeof是C/C++的运算符,主要用于计算数据类型或变量所占用的字节数
sizeof(double)// 8
sizeof
运算符是在编译时计算得出大小的,它是一个编译器内置的运算符,因此其计算结果是一个常量表达式,而不是一个运行时的值。因此,sizeof
运算符可以用于计算编译时静态分配的变量和数组的大小,但不能用于动态分配的内存。sizeof
运算符在编译时计算,具体来说是在编译阶段的代码生成(Code Generation)阶段也就是生成汇编代码之前。在这个阶段,编译器已经完成了语法解析、类型检查等工作,可以计算变量或类型所占用的字节数并将其编码到目标文件中,供后续的链接工作使用。因此,我们通常将sizeof
运算符称之为编译时常量表达式。
2 strlen
- 是一个C标准库中的字符串函数,计算以’\0’结尾的字符串的长度。
- 只接受char*做参数且且以结尾为‘\0’的字符串
- 因此当传进来的参数是数组名时,数组名会隐式转换成指针
- strlen函数是在程序运行时执行