strlen
strlen是函数
头文件:<string.h>
作用:计算字符串的长度,不包括'\0'在内
strlen的参数只能是char* 且必须是以'\0'结尾的
strlen(char*)函数求的是字符串的实际长度( 即从开始到遇到第一个'\0' )
如果你只定义没有给它赋初值,返回的结果是不定的。
char a[10];
cout<<strlen(a)<<endl; //结果不定
const char a[10]="\0";
cout<<strlen(a)<<endl; //输出0
const char a[10]="abc";
cout<<strlen(a)<<endl; //输出3
sizeof
sizeof是一个操作符(operator)
sizeof()返回的是变量声明后所占的内存数,不是实际长度
char str[20]="0123456789";
int a=strlen(str); //a=10; 实际长度
int b=sizeof(str); //b=20; 声明后占用的内存
数组的sizeof
数组的sizeof值等于数组所占用的内存字节数。
1)当字符数组表示字符串时,其sizeof值将’/0’计算进去。
char a[10];
sizeof(a) //结果为10
char n[] = "abc";
sizeof(n) //结果为4
2)当数组为形参时,其sizeof值相当于指针的sizeof值。
void func(char a[3])
{
int c = sizeof(a); //c = 4,因为这里a不在是数组类型,而是指针,相当于char *a。
}
void func(char b[])
{
int c = sizeof(b); //c = 4,理由同上。
}
函数的sizeof
sizeof也可对一个函数调用求值,其结果是函数返回值类型的大小,函数并不会被调用。
对函数求值的形式:sizeof(函数名(实参表))
1)不可以对返回值类型为空的函数求值。
2)不可以对函数名求值。
3)对有参数的函数,在用sizeof时,须写上实参表。
网友评论