|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 为什么答案会这样?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
404
人关注过本帖
标题:
为什么答案会这样?
只看楼主
加入收藏
狂人tju
等 级:
新手上路
帖 子:14
专家分:8
注 册:2009-10-27
结帖率:
50%
楼主
收藏
已结贴
√
问题点数:10 回复次数:4
为什么答案会这样?
#include<stdio.h>
main()
{int i,j;
char a[]="xyz",b[]={'x','y','z'};
i=strlen(a);j=strlen(b);
printf("%d %d",i,j);
}
我运行了,j的值为什么是23?谢谢了!
搜索更多相关主题的帖子:
答案
2010-03-16 21:47
举报帖子
使用道具
赠送鲜花
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
2
楼
收藏
得分:10
strlen从字符串的首地址,也就是第一个字符串开始计算,直到它遇到一个\0为止。
a[]="xyz"得到的实际空间是:a[4] = {'x', 'y', 'z', '\0'},所以得到的结果是正确的
而b[] = {'x','y','z'}; 实际空间是:b[3] = {'x', 'y', 'z' },而b[4]以后空间的内容是未知的,所以strlen(b)最后得到的值是3+x
,x是随机的
2010-03-16 22:19
举报帖子
使用道具
赠送鲜花
狂人tju
等 级:
新手上路
帖 子:14
专家分:8
注 册:2009-10-27
第
3
楼
收藏
得分:0
上楼你所说的是3+x中的x是随每次运行而不同吗?但我每次运行都是23呐?!
2010-03-16 22:28
举报帖子
使用道具
赠送鲜花
ldg628
等 级:
火箭侠
威 望:
3
帖 子:526
专家分:3036
注 册:2009-6-23
第
4
楼
收藏
得分:0
机器不同,或者你多写几行代码,你只要记住strlen的原理就行了
收到的鲜花
狂人tju
于
2010-03-16 22:59
送鲜花
3朵 附言:我很赞同
2010-03-16 22:47
举报帖子
使用道具
赠送鲜花
狂人tju
等 级:
新手上路
帖 子:14
专家分:8
注 册:2009-10-27
第
5
楼
收藏
得分:0
ok谢谢啦!
2010-03-16 22:53
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
为什么答案会这样?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.026895 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved