C越界和溢出的区别

越界

数组下标数超过承载量

例如:这样a数组就一定会超过下标限制的10的值。

1 1 int a[10];
2 2 int i=3 3 while(4 45 5    a[i]=++i;
6 6

 

溢出:

就是数据超过了本来的上限,就会发生溢出

例如:这里的转化就溢出

int j=1000long i;
i=(long) j*j;
/*
    先强制int转换成long型,这样就变成了long*int结果是long型
    1000*1000不会因为超过int的65536的限制而报错
*/
i=(long)(j*j);
/*
   这里显然是先int*int 1000*1000超过了int的65536的限制,发生溢出
   会报错  
*/

 

posted @ 2020-09-05 10:21  想活出点人样  阅读(403)  评论(0编辑  收藏  举报