发布网友 发布时间:2022-04-22 06:44
共1个回答
热心网友 时间:2022-06-16 18:30
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并没有调用。