永发信息网

sizeof把字符中间的"\0"算一个字符,还是两个字符

答案:3  悬赏:40  手机版
解决时间 2022-01-01 08:08
  • 提问者网友:树红树绿
  • 2021-12-31 23:39
例如:char a[7]="a0\0a0\0";
int i,j;
i=sizeof(a); I是多少 ?
最佳答案
  • 五星知识达人网友:佘樂
  • 2022-01-01 00:51
sizeof(a):求数组所占空间大小,这个为7
strlen(a):求数组元素的实际长度,这个结果为2
这是两个不同的概念,不要搞混淆了。
全部回答
  • 1楼网友:煞尾
  • 2022-01-01 03:30
sizeof函数功能是用于计算数据空间的字节数。 sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示(当然用在字符数组计算"\0"的大小)。 使用sizeof时string的注意事项:string s="hello";sizeof(s)等于string类的大小(32)一个字节是8位,所以在32位编译器上第一个所占的字节数为32/8=4;对于一般数组而言sizeof 方法:数组元素个数=占用字节/数组类型所占字节。在此题中数组str2[]="hello"一共占用6个字节(包括5个字母各占一个字节再加上一个结束符‘\0’占一个字节,共6个字节)。所以选d
  • 2楼网友:街头电车
  • 2022-01-01 01:54
不管中间是什么,sizeof只算的是所占的长度,前面定义了为7,而且是char类型,所以i = 1*7 = 7
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯