您的位置:首页 > 其它

sizeof与strlen使用,字符串指针数组

2013-03-22 11:42 281 查看
1.sizeof和strlen的使用示例:

2.对于字符串指针长度的查询:

代码示例:

char *AudioMode[7] = {"Type&","Mode&","Sample&","Bitrate&","Channel&","Save&","State&"};

char *aaaa = "12345678";

char c = '12345678';

int size_of_len,str_len_len,len;

size_of_len = sizeof(aaaa);

str_len_len = strlen(aaaa);

len = (sizeof(AudioModel)/sizeof(char *));

printf("size_of len = %d,str_len_len = %d\n",size_of_len,str_len_len);

printf("size of c = %d\n",sizeof(c));

printf("len = %d\n",len);

输出结果为:

size_of len = 4, str_len_len =8

size of c = 1

len = 7;

解析:

sizeof计算的都是类型的长度。如果是对象,则转换成类型,再计算类型的长度。在32位系统中。指针类型是32位,4个字节。所以对任何指针用sizeof结果都是4;

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。

扩展

char aa[10];cout<<strlen(aa)<<endl; //结果是不定的

char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0

char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3

而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。

sizeof(aa) 返回10

int a[10]; sizeof(a) 返回40 (根据语言int型 c 是两个字节 c++是四个 java 是两个)

⒈sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。

该类型保证能容纳实现所建立的最大对象的字节大小。

⒉sizeof是操作符(关键字),strlen是函数。

⒊sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。

sizeof还可以用函数做参数,比如:

short f();

printf("%d\n",sizeof(f()));

输出的结果是sizeof(short),即2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: