搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ sizeof,strlen的问题
标题:
sizeof,strlen的问题
取消只看楼主
xzy199999
等 级:
业余侠客
帖 子: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
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
2
楼
得分:0
这答案我当然知道,我要问的是理由??为什么sizeof(a)=7,strlen(a)=3; ??
我是初学者
2010-11-30 15:03
xzy199999
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
3
楼
得分:0
回复 6楼 flyingcat
这位大哥解释的很详细,可是你的答案却根本错了,这道题strlen明明是5,不是3啊!
我是初学者
2010-11-30 16:47
xzy199999
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
4
楼
得分:0
回复 10楼 xiaomarn
是的,\010是十进制的8,\032是十进制的26,那这样不是123826吗?不应该是6吗,为什么会是5?
我是初学者
2010-11-30 17:30
xzy199999
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
5
楼
得分: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
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
6
楼
得分:0
回复 14楼 flyingcat
饿,么人解答了么?
我是初学者
2010-11-30 18:15
xzy199999
等 级:
业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
第
7
楼
得分:0
回复 17楼 flyingcat
谢谢,不过我还是不懂如果是123\0100\032的话,为什么不是
\0100转为十进制的64,变成123+ascii(64)+ascii(32)呢?
我是初学者
2010-12-01 09:27
7
1/1页
1
参与讨论请移步原网站贴子:
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