标题:sizeof,strlen的问题
取消只看楼主
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
结帖率:92.45%
已结贴  问题点数:5 回复次数:6 
sizeof,strlen的问题
char a[7]="123\010\032";
那么sizeof(a)和strlen(a)都是多少啊?
搜索更多相关主题的帖子: sizeof strlen 
2010-11-30 14:49
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
这答案我当然知道,我要问的是理由??为什么sizeof(a)=7,strlen(a)=3; ??

我是初学者
2010-11-30 15:03
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
回复 6楼 flyingcat
这位大哥解释的很详细,可是你的答案却根本错了,这道题strlen明明是5,不是3啊!

我是初学者
2010-11-30 16:47
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
回复 10楼 xiaomarn
是的,\010是十进制的8,\032是十进制的26,那这样不是123826吗?不应该是6吗,为什么会是5?

我是初学者
2010-11-30 17:30
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
回复 12楼 flyingcat
1,我调试过程中发现要是改为123\0100\032,就是6了, 这就是为什么呢?\0102不是64吗,应该是对应ascii64的那个字符才对啊,怎么就变成6了??
2,还有前面的123为什么不是对应的ascii码,后面8进制的就是对应的ascii码呢?
3,我把\010改为\078也不出错,还是返回6,这又是为什么呢?

我是初学者
2010-11-30 17:48
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
回复 14楼 flyingcat
饿,么人解答了么?

我是初学者
2010-11-30 18:15
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
回复 17楼 flyingcat
谢谢,不过我还是不懂如果是123\0100\032的话,为什么不是
\0100转为十进制的64,变成123+ascii(64)+ascii(32)呢?

我是初学者
2010-12-01 09:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327397-1-1.html




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

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