strlen 和sizeof

来源:互联网 发布:php众筹网站程序源码 编辑:程序博客网 时间:2024/06/06 00:35

strlen 和sizeof

 

strlen(const char *)一个函数,返回字符串的实际长度 (截止到’\0’, 但不包括’\0’)

sizeof()是一个操作符,不是函数,返回的是变量声明后所占的内存字节数

 

char str[20] = "0123456789";
int a = strlen(str); //a = 10
int b = sizeof(str); //b=20

 

char *str="abcde";

int a = sizeof(str));  //返回的指针str的长度,a=4

int b = strlen(str));  //b=5

int  c = sizeof (*str);   //返回第一个字符占用字节 c=1

 

sizeof(char)=1

sizeof(int)=4

sizeof(float) = 4

sizeof(double)=8

 

struct struct_a{

 char c;

int b;

};

Struct_a struct_n;

Int a = Sizeof(struct_n);  //注意字节对齐, 返回8

 

struct struct_aa {

                char char_a;

                int int_a;

                char char_b[10];

                };

                struct_aa aa;

                int  a = sizeof (aa);   //a=4+4+12=20

 

函数short f ();

int a = sizeof(f) ;   //a =2

 

char str[]={‘a’, ‘b’, ‘c’};

int a = sizeof(str);   //a=3

int  b=strlen(str); //b 结果不一定