永发信息网

字符串的长度为什么不能超过255

答案:2  悬赏:0  手机版
解决时间 2021-01-28 13:16
字符串的长度为什么不能超过255
最佳答案
汇编语言的话,字符串有固定分配空间,超了的话,数据就存不进去了
全部回答
scanf函数是可以限制输入长度的,但scanf("%s",a)这种写法没有使用它的限制功能,所以是不检查字符串长度;c/c++也是不检查数组越界的。防止数组越界的任务完全由程序员事先安排完成;越界了就会产生不良或危险后果,正规软件中是绝对不能允许的。正因为“不检查”,当越界操作数组时,在越界部分没有受到“其他干扰”的情况下自然也能“正常”表现。你这里的问题是:要弄清操作符sizeof和函数strlen的意义:操作符sizeof是求参数的内存分配字节数,你这里为a分配了3个字节,所以输出是3;而函数strlen是求字符串长度,从字符串第一个字符开始,一个一个往后数,直到遇到'\0'为止看经过了多少个字符,有几个字符,输出就是几(不包括'\0')。scanf在接收字符串时最后要自动加一个'\0',所以在6个a后有个'\0',所以strlen计算出来是6。但有一点要说明,那就是你的运气好:因为你声明的长度是3,输入长度却是6,3个后面的字符是不可靠的,说不定被别人占用了它们所在的空间,那就不知道在什么地方才能“碰到“'\0',那样的话由strlen计算出来的长度也就可能是个大于等于3的任何数……
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
找穿越小说 男主是一个山庄的庄主 武功高强
莲塘网球场地址好找么,我有些事要过去
工区的意思是什么啊?知道的请说下!
三角形ABC中,角ABC=100度,角ACB=20度,CE平分
求助,萨摩突然一觉起来右前腿瘸了是怎么回事
小时候小男孩小女孩做过那事,请问有吗?
传奇中变怎么样卡章和符的属性
220V国标3KW电动机应该是多少公斤有规定吗?
网球场地址在什么地方,想过去办事
濯盥的意思是什么啊?知道的请说下!
在英语过去式里面办小报怎么办四年级下册
未来家里的变化作文800字
我想请教一下感受,冬天去漠河好玩,还是夏天
下列物质的用途中,与该物质的化学性质无关的
星光彩吧地址好找么,我有些事要过去
推荐资讯
我的手机号被她删掉 了,我发短信回复己收到
我今年72岁,请问农村拆迁我儿子签字的话以后
一首关于朋友 兄弟的说唱歌曲 想听但是想不起
我不太会说好听的话,也不懂酒桌礼仪,曾经在
中国燃气石油气(广兴经营部)地址在什么地方,
想送个礼物给男朋友~男朋友是工作狂~IT工程
汉堡包一共有哪些味道
醉美江南韩式半永久彩妆造型馆怎么去啊,我要
潆缘玉器地址在什么地方,想过去办事
客船和货船分别从甲、乙两港同时出发相对开出
确定自己目标的方法,怎么合理的安排
星光大道地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?