| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4850 人关注过本帖
标题:一个字符数组的初始化问题
取消只看楼主 加入收藏
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:2 
一个字符数组的初始化问题
#include <stdio.h>
#include <string.h>
void main()
{
    char s[4]={'a','b','c','d'};
    //char s[4]="abcd";
   printf("%d\n",strlen(s));
}
在给数组s初始化时,出现以下问题
1、s[4]={'a','b','c','d'}编译可以通过,但是s[4]="abcd";出现错误array bounds overflow。
2、在输出长度时,s[4]={'a','b','c','d'}是7而不是4。在vc6环境下跟踪调试,发现

   s="abcd?".  
请高手赐教!

[ 本帖最后由 逐渐学习 于 2010-10-9 13:00 编辑 ]
搜索更多相关主题的帖子: 字符 
2010-10-09 12:58
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
回复 3楼 wade2006
恩,strlen是这么计算的,但是我想知道为什么定义s[4]={'a','b','c','d'},4个元素都指定了字符,
貌似还有s[4]、s[5]、s[6]还存在,这都超过了数组定义了,请指点下。

帮人《---》帮己
2010-10-09 15:53
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
谢谢。

帮人《---》帮己
2010-10-10 11:04
快速回复:一个字符数组的初始化问题
数据加载中...
 
   



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

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