sizeof和strlen

本文深入解析strlen与sizeof函数的区别与应用。strlen用于计算字符串的实际长度,直到遇到''为止,不包括'';而sizeof则计算变量或数据类型在内存中占用的实际字节数,包括字符串末尾的''。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

strlen

strlen()是函数,用于计算字符串数组的实际长度(到‘\0’结束,不包含‘\0’);strlen只能用于计算char *a或char a[]格式的,不能用于计算string类型

1 #include<iostream>
 2 using namespace std;
 3 void main()
 4 {
 5 char a[10];   //未初始化,长度不确定
 6 char b[10]={};  //初始化为’空,NULL;长度为0,
 7 char c[10]="abc";  //遇到’\0‘结束,实际长度为3
 8 char d[10]="abc\0def";   //遇到’\0‘结束,实际长度为3
 9 char *e="abc";  //遇到’\0‘结束,实际长度为3
10 cout<<strlen(a)<<" "<<strlen(b)<<" "<<strlen(c)<<" "<<strlen(d)<<" "<<strlen(e);
11 }

运行结果如下:
a:23
b:0
c:3
d:3
e:3

sizeof

sizeof是操作符,计算的是所占内存的实际长度,单位是字节,可用于常量,变量,数据类型,函数,sizeof是基于数据类型来计算长度的

.对于数字类型的常量,sizeof计算的是该数字所属数据类型的长度,如:

sizeof(2) //2是int类型,长度为4
sizeof(2.1) //2.1是double类型,长度为8

.对于字符串类型的常量,sizeof计算的是所有字符的长度,包括‘\0’,如:

sizeof(“abc”) //包含4个char类型的字符,包括末尾隐含的’\0’,char类型长度为1,总长度为4
sizeof(“abc\0def”) //长度为8,包含8个char类型的字符,将‘\0’作为普通字符,char类型长度为1,总长度为

1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 void main()
 5 {
 6 char a[10];      //char类型长度为1,包含10个char类型的数组长度为10
 7 char b[10]={};
 8 char c[10]="abc";
 9 char d[10]="abc\0def";
10 char *e="abcde";
11 int f[10];    //int类型长度为4,包含10个int类型的数组长度为40
12 cout<<"a:"<<sizeof(a)<<"\nb:"<<sizeof(b)<<"\nc:"<<sizeof(c)<<"\nd:"<<sizeof(d)
13     <<"\ne:"<<sizeof(e)<<"\n*e:"<<sizeof(*e)<<"\nf:"<<sizeof(f)<<endl;
14 }

结果:
a:10
b:10
c:10
d:10
e:4
*e:1
f:40

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值