免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7849 | 回复: 18
打印 上一主题 下一主题

char到底可以存多少字符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-29 09:28 |只看该作者 |正序浏览
  1. char buff[1];
  2.         cin>>buff;
  3.         cout<<sizeof(buff)<<"    "<<strlen(buff)<<"    "<<buff;
复制代码
测试输入aaaaaaaaaaaaaaaaaaaaaa
程序输出1    22    aaaaaaaaaaaaaaaaaaaaaa



为什么?

论坛徽章:
0
19 [报告]
发表于 2010-08-30 11:51 |只看该作者


C++会检测数组的长度的吧,防止越界。

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
18 [报告]
发表于 2010-08-29 23:36 |只看该作者
求你了,别用 C 语言了吧。
langue 发表于 2010-08-29 12:40



    建议改用 ada。{:3_189:}

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-09-11 06:20:00
17 [报告]
发表于 2010-08-29 23:12 |只看该作者
如果是char buffer;的话肯定只输出一个字符,但你用的是char buffer[1];这样buffer就不是一个简单的char变量了,现在buffer是一个指针,执行代码时,你所输入的字符串存放在以buffer地址开始的内存里;输出也是以buffer地址开始的一段字符串。

论坛徽章:
0
16 [报告]
发表于 2010-08-29 14:46 |只看该作者
求你了,别用 C 语言了吧。
langue 发表于 2010-08-29 12:40



   

论坛徽章:
0
15 [报告]
发表于 2010-08-29 14:44 |只看该作者
规定就是1个,啥平台都是1个,除非你不遵守协议

论坛徽章:
0
14 [报告]
发表于 2010-08-29 12:40 |只看该作者
求你了,别用 C 语言了吧。

论坛徽章:
0
13 [报告]
发表于 2010-08-29 10:33 |只看该作者
测试了。可以存啊
xufinal 发表于 2010-08-29 09:44


他是说你所谓的存只是求字符串长度的一个现象而已,如果你第一个char赋0了,长度就是0,strlen是按照0的位置来判定的,至于你前头为啥可以存很多,楼上几位说明了,因为你占了别人的地方

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
12 [报告]
发表于 2010-08-29 09:55 |只看该作者
如果不介意那点速度的话, 直接用std::string好了, 省得麻烦。
如果介意:

  1. char buf[N];
  2. cin>>setw(N)>>buf;
复制代码

论坛徽章:
0
11 [报告]
发表于 2010-08-29 09:52 |只看该作者
用结构体测了下,确实溢出了。用char真麻烦。。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP