|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个有趣的问题,你能答对吗?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1271
人关注过本帖,
2
人收藏
标题:
一个有趣的问题,你能答对吗?
只看楼主
加入收藏
hamsters
等 级:
论坛游民
帖 子:33
专家分:54
注 册:2012-6-10
结帖率:
100%
楼主
收藏
(2)
已结贴
√
问题点数:20 回复次数:25
一个有趣的问题,你能答对吗?
intmain()
{
char a[1000];
int i;
for(i=0; i<1000; i++)
{
a[i] = -1-i;
}
printf("%d",strlen(a));
return 0;
}
请问结果是多少,仔细想想。
2012-08-14 18:40
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
2
楼
收藏
得分:0
127?
2012-08-14 18:45
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
3
楼
收藏
得分:0
不对 我突然想明白了 不是 是 255 i=255的时候才会溢出变成0
发出来格式乱了
上图
图片附件: 游客没有浏览图片的权限,请
登录
或
注册
[
本帖最后由 zklhp 于 2012-8-14 19:25 编辑
]
2012-08-14 19:02
举报帖子
使用道具
赠送鲜花
zpydwz
等 级:
新手上路
帖 子:2
专家分:0
注 册:2012-8-14
第
4
楼
收藏
得分:0
额 貌似无法编译哇
2012-08-14 19:08
举报帖子
使用道具
赠送鲜花
YanXi_528
等 级:
新手上路
帖 子:5
专家分:1
注 册:2012-8-14
第
5
楼
收藏
得分:0
囧 一共128个字符,为毛答案是255
2012-08-14 19:08
举报帖子
使用道具
赠送鲜花
YanXi_528
等 级:
新手上路
帖 子:5
专家分:1
注 册:2012-8-14
第
6
楼
收藏
得分:0
回复 3楼 zklhp
版主大概给点一下呗..
-1 -2 -3 .... -127 -128 127 126 .... 1 0 -1 .... -127 -128 127 126 .... 1 0 -1 .... -127 -128 127 126 .... 1 0 -1 ....
-127 -128 127 126 .... 25 24
为什么这样的数据测长度是255? - -
[
本帖最后由 YanXi_528 于 2012-8-14 19:18 编辑
]
2012-08-14 19:14
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
7
楼
收藏
得分:0
以下是引用
YanXi_528
在2012-8-14 19:14:23的发言:
版主大概给点一下呗..
-1 -2 -3 .... -127 -128 127 126 .... 1 0 -1 .... -127 -128 127 126 .... 1 0 -1 .... -127 -128 127 126 .... 1 0 -1 ....
-127 -128 127 126 .... 25 24
为什么这样的数据测长度是255? - -
这种题目很绕人 你写写就明白了
2012-08-14 19:29
举报帖子
使用道具
赠送鲜花
hxc323
等 级:
新手上路
帖 子:4
专家分:3
注 册:2012-8-14
第
8
楼
收藏
得分:0
'/n'的值为0,到第一个0,出现字符串结束符就结束了,128+127=255个单元后下一个单元的ascii码为00000000。
应该是这样吧?
2012-08-14 20:15
举报帖子
使用道具
赠送鲜花
有容就大
来 自:东土大唐
等 级:
版主
威 望:
74
帖 子:9048
专家分:14309
注 册:2011-11-11
第
9
楼
收藏
得分:0
int 转到char 截取低8位二进制吧。
梅尚程荀
马谭杨奚
2012-08-14 20:26
举报帖子
使用道具
赠送鲜花
fu563048951
等 级:
论坛游民
帖 子:18
专家分:20
注 册:2012-2-19
第
10
楼
收藏
得分:20
因为数组是char类型的
char的取值范围是-128到127.而给出的数组的值是1000,由于计算中间肯定会出现数值上大于128的情况。此题中会有-128-1出现,由于-128在计算机内存中是1000 0000 表示的,再减1的话会产生溢出,此时计算机会将-128的补码1000 0000当做128处理,减1 就等于127了,下面就会一直循环。strlen函数返回的是char类型范围的最大值,即255。
2012-08-14 20:28
举报帖子
使用道具
赠送鲜花
26
1/3页
1
2
3
快速回复:
一个有趣的问题,你能答对吗?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.022582 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved