sizeof和strlen区别
发布网友
发布时间:2022-08-02 23:03
我来回答
共4个回答
热心网友
时间:2024-12-04 06:50
1、sizeof是编译器算符,其结果是在编译期间生成的,运行时候不会变;strlen是函数,是运行时候计算结果的。
2、sizeof可用来计算不同类型的存储空间的实际大小,strlen只是计算字符串除结尾\0之外的长度。
3、对字符串来说,两者的值可能不同。例如:
char a[]="abc", b[10]="abc";
printf("%d %d %d %d",sizeof(a),strlen(a), sizeof(b), strlen(b) ); 结果是 4 3 10 3
热心网友
时间:2024-12-04 06:50
① sizeof是运算符,计算数据所占的内存空间;strlen()是一个函数,计算字符数组的字符数;
② sizeof可以用类型作参数;strlen()只能用char*作参数,必须是以’/0’结束
③ 数组做sizeof的参数不退化,传递给strlen就退化为指针了;
④ sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小
热心网友
时间:2024-12-04 06:51
sizeof可以是对于一个类型,如:int,short,char,或者一个结构,能够得到它的字节数,也能得到数组的字节数。还有sizeof不是一个函数
strlen是对于字符串的,从第一个元素开始,直到遇到'\0'为止,如果你这么写是错误的
int a[3] = {1, 2, 0};
printf("%d", strlen(a));
热心网友
时间:2024-12-04 06:51
不知道