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 结果不一定