sizeof()、strlen()、length()、size()均用于获取字符串长度
length():
C++中,length()只用于获取字符串的长度。例如:
String str="abcdefg";
str.length()=7
size():
除了与length一样可以获取字符串的长度,还可以获取vetor类型的长度
vector<int> n(15,3)//表示n中包含了15个值为3的元素
n.size()=15
sizeof():
sizeof()用以求对象所占内存空间大小
//基本数据类型
sizeof(char)=1;
sizeof(int)=4;
sizeof(float)=4;
sizeof(long)=8;
sizeof(double)=8;
sizeof(int *)=sizeof(float *)=sizeof(char *)=8;//指针型
sizeof(String)=28
//常量值的长度等同于它实际类型长度
sizeof(1)=sizeof(int)=4;
sizeof(1.11)=sizeof(double)=8
//数组,计算应该计算到"\0"的位置
char a[]="123456";sizeof(a)=6+1=7 //字符串默认结尾有一个"\0"
int b[]={1,2,3,4,5};sizeof(b)=6 //b是数组,但不需计算到'\0'
char *p=a;sizeof(*p)=1; //*p指向a的第一个字符,大小为1
char *q=b;sizeof(*q)=4; //*p指向b的第一个字符,大小为4
//获取数组长度
int arr[]={1,2,3,4,5}
sizeof(arr)/sizeof(arr[0])= sizeof(arr)/sizeof(*arr)= sizeof(arr)/sizeof(int)
strlen:
返回字符数组或字符串所占的字节数,返回大小不包括'\0',如果只定义而不初始化,则结果是不定的,它会从aa首地址一直找下去,直到遇到'\0’结束。参数必须是字符型指针(char *),当数组名作为参数传入的时候,实际上数组已经退化为指针了。