比如说字符串S整形变量a,
你对这个回答的评价是
你对这個回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。
为什么输出结果是 5 4 不是应该有結束符的吗,长度不是应该为6吗?字节怎么还变成4了?不是6嘛
char str[] = “12345”是字符数组,str里有‘1’‘2’‘3’‘4’‘5’‘\0’每个字符许一个芓节,所以为 6个字节
多分配了一个存储地址的空间,用于存储字符数组的首地址这个存储空间是多大(占有几个字节)?一般32位机器囷现行的编译器指针的长度一般指定为4个字节,记住就是了
strlen求长度不包含‘\0’。
strlen()是求字符的长度字符串中有多少字符就输出几,不包括结束符‘\0’;
sizeof()是求其在内存中的长度
sizeof(str)=4;因为str是指针啊。所有指针都占四个字节
如果要输出6,那应该是sizeof(“12345”);
1、strlen函数是返回字符长度(以空字符为结束符)
2、sizeof(str);返回是指定变量占用空间大小
str是指针变量指针大小为4,所以返回4
你可以把str变成数组
strlen()函数返回不包含结束符的长度
你定义的是指针变量他的sizeof(str)就是4,这是规定
要是换成数组就不是啦就和你想的一样啦
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案