当前位置:网站首页>The usage and difference between strlen and sizeof

The usage and difference between strlen and sizeof

2022-07-06 05:47:00 Python's path to immortality

strlen And sizeof Usage is easy to be confused Next, summarize the similarities and differences between the two I hope I can help you .

function strlen And operators sizeof Usage of :

strlen The code prototype is :size_t strlen(char const* str), It's a function the Pass in The parameter must be a character pointer char* type , And it has to be ‘\0’ ending ,strlen stay function Calculate all the time Used to calculate the specified string str The length of Not the memory size   Encountered string str End identifier of ‘\0’ end barring ‘\0’.

sizeof yes C/C++ One of the operators in , Simply put, its function is to return the number of memory bytes occupied by an object or type , The parameter passed in can be Array 、 The pointer 、 type 、 object 、 Functions, etc Calculate at compile time , use sizeof To return the type and the statically allocated object 、 Space occupied by a structure or array , It has nothing to do with what it stores .
sizeof The meaning of the returned value is as follows :
Array —— The amount of array space allocated at compile time ( Include '\0');
The pointer —— The amount of space used to store the pointer (32 Bit system by 4,64 Bit system by 8);
type —— The amount of space occupied by this type ;
object —— The actual space occupied by the object ;
function —— The amount of space occupied by the return type of the function ( The return type of a function cannot be void).

 

function strlen And operators sizeof The difference between : 

1.strlen Is the function Calculate... At run time ,sizeof It's the operator Calculate at compile time .

2.strlen Parameter type can only be character pointer And take ‘\0’ ending ,sizeof The parameter type can be function 、 The pointer 、 Array 、 type 、 Object etc. , Depending on the type of parameter sizeof The meaning of the returned value is also different .

3.strlen Calculate string length , Independent of memory occupied encounter ‘\0’ end , It doesn't contain '\0',sizeof Returns the number of memory bytes occupied by an object or type It has nothing to do with length contain ‘\0’.

原网站

版权声明
本文为[Python's path to immortality]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202132041411432.html