sizeof和strlen在c语言的区别是什么?

如题所述

sizeof和strlen在c语言的区别是:用法不同。

sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。sizeof是算符,strlen是函数。sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以“\0”结尾的。

strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。

函数调用:

sizeof(函数名())

sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用,举例来说定义如下函数:

int myprint ()

{undefined

printf(“hello\n”);

return 0;}

int main()

{undefined

printf(“%d”,sizeof(mypaint()));

return 0;}

结果只打印函数返回类型的sizeof值,并没有打印hello说明函数myprint并没有调用。

温馨提示:答案为网友推荐,仅供参考
相似回答