sizeof()运算符和strlenth()函数的区别

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()混淆。

发布了25 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/modi000/article/details/102742947