strlen和sizeof的区别:
-
strlen 和 sizeof 并没有什么关联
-
strlen 是求字符串长度的-只能针对字符串求长度 - 库函数 - 使用引头文件
-
sizeof 计算变量、数组、类型的大小-单位是字节 - 操作符
关于计算出的结果
char arr1[] = “abc”;
char arr2[] = {'a','b','c'};
sizeof包括‘/0’,strlen不包括‘/0’ ,若初始化没有‘/0’,则strlen的结果会是一个随机值。
所以
sizeof(arr1) = 4;
sizeof(arr2) = 3;
strlen(arr1) = 3;
strlen(arr2) = 随机值;
sizeof 计算变量所占内存空间的大小,单位是字节
指针的大小要么四个字节,要么八个字节,32位平台4字节
#include <stdio.h>
int main()
{
int a = 0;
char b = 'A';
int arr[10] = { 0 };
printf("%d\r\n", sizeof(a)); //4
printf("%d\r\n", sizeof(int)); //4
printf("%d\r\n", sizeof(b)); //1
printf("%d\r\n", sizeof(char)); //1
printf("%d\r\n", sizeof(arr)); //40
printf("%d\r\n", sizeof(int [10]));//40
return 0;
}
sizeof中的内容不会进行实际的运算
#include <stdio.h>
int main()
{
short s = 0;
int a = 10;
printf("%d\n", sizeof(s = a + 5));//2
printf("%d\n", s);//0
return 0;
}