C语言中溢出是什么意思

 我来答
老纪复利
推荐于2017-09-29 · TA获得超过298个赞
知道答主
回答量:71
采纳率:0%
帮助的人:75.1万
展开全部
1、溢出:
数据类型超过了计算机字长的界限而出现的数据溢出;

2、溢出可能原因:
应用程序读取用户数据,复制到应用程序开辟的内存缓冲区中,却无法保证缓冲区的空间足够时 (假设定义数组int Array[10], 而在调用时使用Array[11] 或存放的数据超过int类型容量等), 内存缓冲区就可能会溢出.

3、溢出因素分析:
由于C/C++语言所固有的缺陷,既不检查数组边界,又不检查类型可靠性,且用C/C++语言开发的程序由于目标代码非常接近机器内核,因而能够直接访问内存和寄存器,只要合理编码,C/C++应用程序在执行效率上必然优于其它高级语言。然而,C/C++语言导致内存溢出问题的可能性也要大许多。
匿名用户
2011-07-16
展开全部
首先我更正一楼的一点。
int类型不是两字节。
int类型是多少字节,取决于特定环境,我们32位系统,int是4字节。要知道int在你的电脑是多少字节。用sizeof(int).

溢出:想象一个桶,桶的容积是有限的,你装满了水以后,如何还要往里面装,那么水就溢出到地面了。
C语言中的溢出和这个原理一样,桶的容积就表示你定义的某一数据的内存大小,往里面写入数据就表示在装水。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锐鹤0J0
2019-11-14 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:34%
帮助的人:795万
展开全部
楼主你好,关于溢出有几种不同的概念,首先是内存溢出,这个主要是使用资源没有释放,从而导致内存分配不够;还有就是存储格式溢出,例如你使用int型来存数据,可是你存的数据超过了它的表示范围,从而导致溢出,这个可以参考计算机组成原理中的相关概念。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
461515457
2011-07-16 · 超过13用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:56.9万
展开全部
就是数据太大了。。
比如int 型数据是两个字节...最大的话是1111 1111 1111 1111 也就是65535,如果再加1,数据就会溢出,变成0000 0000 0000 0000...前面进的那个1就溢出了...
也就是说
int a, b;
a=65535;
b=a+1;
那么b=0!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lori俞小岩
2011-07-16
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
语言中的%与后面的字母一起构成了格式控制符,例如%s表示字符串,%i表示int,计算机当然不能直接识别什么是一般的字符,什么是格式控制符。但当计算机按照一般方式识别%之后,就会考虑下一个字母是不是s,i等等有特殊含义的字母,从而识别格式控制符。这也就是这些格式控制符在printf等函数中不能随便使用的一个原因吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式