char *p char p[] sizeof strlen || int *p int p[] 无法用

char str[20]="0123456789"; 
int a=strlen(str); //a=10;         //字符串长度

int b=sizeof(str); //而b=20;    //预分配空间


 sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,

因此sizeof不能用来返回动态分配的内存空间的大小。

所以sizeof返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。

sizeof最不准确:计算 指针空间尺寸 4字节,数组空间尺寸[100]

char *str1="absde";
char str2[]="absde";
char str3[8]={'a',};
char ss[100] = "0123456789";

输出:

sizeof(str1)=4        //指针空间尺寸
sizeof(str2)=6;
sizeof(str3)=8;

sizeof(ss)=100        //数组空间尺寸


strlen参数必须是字符型指针(char*)

功能:返回字符串的长度。


猜你喜欢

转载自blog.csdn.net/qq1518572311/article/details/80289507