| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4178 人关注过本帖
标题:strlen函数测整数256所占字节数为什么显示0?
取消只看楼主 加入收藏
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:13 
strlen函数测整数256所占字节数为什么显示0?
程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
    char a[10]={256,22,15,1};
    printf("%d\n",strlen(a));
}
这个程序输出结果是0,strlen()函数测的整数数组元素a[0]的值应该是1嘛?
所占内存:0xff 0x00 0x00 0x00表示占一个字节才对啊,为什么会输出“0”?
2016-10-12 14:08
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 2楼 linlulu001
不好意思啊,我的变量a是个整型数组int a[10],我写的时候写错了。
2016-10-12 14:34
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
    int a[10]={256,22,15,1};
    printf("%d\n",strlen(a));
}
这才是我想问的。
2016-10-12 14:34
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 5楼 rjsp
对哈,那么这个0x100在二进制中表示成100000000,看似是一个字节(8位),
但在16进制中好像就要占12位了,那么0x100到底算哪样?不应该是占一个字节。
难道不占字节?
2016-10-12 15:01
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 2楼 linlulu001
对哈,那么这个0x100在二进制中表示成100000000,看似是一个字节(8位),
但在16进制中好像就要占12位了,那么0x100到底算哪样?不应该是占一个字节。
难道不占字节?
2016-10-12 15:06
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 8楼 xzlxzlxzl
能额,准确的说strlen是测量数据所占实际字节数的。
2016-10-12 15:25
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 8楼 xzlxzlxzl
实际它只测了整数元素a[0]。
2016-10-12 15:26
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 11楼 书生牛犊
这能通过。这里int型在内存中应该是占4个字节的,256这个整数转换成二进制10000 0000
存入内存中(4个字节中),肯定能存下嘛!为什么会丢失?
2016-10-12 16:29
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 12楼 xzlxzlxzl
小端序存储方式能给我讲讲吗?为什不是01 00 00 00呢?  
2016-10-12 16:59
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 18楼 ehszt
嗯嗯,二进制数10000 0000、10000 0000 0000也是为0。先吃个饭等会看看小端序啥的。
2016-10-12 17:53
快速回复:strlen函数测整数256所占字节数为什么显示0?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026152 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved