1、sizeof()是单目运算符,返回的是数据类型所占的字节数,数据类型可以是任何类型。
例如:
对象可以是数据类型
sizeof(int);
sizeof(struct TIME);
sizeof(char);
对象可以是对应的变量名称
int temp; sizeof(temp);
char buffer[6];sizeof(butter); //值为6;
strlenth()是一个字符串函数,故其参数必须是字符串类型,而不能是其他的数据类型。
例如:
char buffer[6] = “hello”; strlenth(butter); //值为5
2、二者值的区别
这一点是最容易迷惑人的,sizeof()的结果是变量(或者变量类型)所占的字节数,这个字节数是内存中分配好的地址空间,跟变量中的内容多少无关。
strlenth是针对字符串的实际有效长度,因为字符串是以‘\0’结尾,故strlenth的值是’\0’之前的字符个数
例如:
char buffer[7]; sizeof(butter); //值为7;
char buffer[7] = “hello”; strlenth(butter); //值为5
3、总结
sizeof()是运算符,就如同+,-,*,/一样,strlength()是函数;
对于字符串来说,sizeof()的值是分配内存空间的大小,strlenth()是字符串的有效长度,因为,字符类型占一个字节,故容易让人与strlenth()混淆。