| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1271 人关注过本帖, 2 人收藏
标题:一个有趣的问题,你能答对吗?
只看楼主 加入收藏
ldzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:64
专家分:339
注 册:2012-7-30
收藏
得分:0 
就我个人理解,strlen(a));只要到了'\0'就算到头了。因此 找到第一个a[i]=0就完了。
i=0,a[i]=-1-i (1111 1111) 之后递减 1111 1110 ,1111 1101 ..... 一直到0000 0001 再减就到 0000 0000.至此strlen(a));的意义就完了。
 即从0000 0001-1111 1111.所谓的溢出只是人为限定的意义而已,对电脑来说只是数的操作罢了。
参考了前面的帖子,呵呵。
2012-08-15 18:10
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
这题确实有点意思。不仔细想想的话,很容易搞错。
2012-08-16 00:31
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:0 
这个贴子好,引起了大家激烈的讨论。
这个问题的结果,只要在机上运行一下,马上就知道结果了。
这个贴子,主要让我们关注了两个问题:
1.超范围给字符变量赋值,C语言内部是如何处理的?
2.C语言中,字符串是如何结束的?

做自己喜欢的事!
2012-08-16 20:40
li361li
Rank: 2
等 级:论坛游民
帖 子:35
专家分:43
注 册:2010-1-29
收藏
得分:0 
表示答案是255
2012-08-16 21:05
wangxiang935
Rank: 3Rank: 3
来 自:南京
等 级:论坛游侠
帖 子:177
专家分:179
注 册:2012-7-11
收藏
得分:0 
这么绕人~~~~~
2012-08-17 08:48
zyj0021
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2007-5-7
收藏
得分:0 
字符数组看成一个字符串,但是这个字符串的长度并一定就等于数组的长度

strlen这个函数,可以去看下手册,搜索字符,直到遇到'\0'就返回!
2012-08-17 09:34
快速回复:一个有趣的问题,你能答对吗?
数据加载中...
 
   



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

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