C语言溢出问题

日期:2014-01-16 22:51:59 人气:1

C语言溢出问题

int y;y=32768;printf(“y=%ld\n”,y);}时输出为y=68255744对于这样的题目要了解一些内存分配的知识。int类型在C语言中只占2个字节也就是-32768~32767之间而32768是超过了这个范围的,显然是放不下的,只有部分放在内存空间里(好比500ml矿泉水瓶子,只能放下500ml的水,你给它装600ml水,显然其中100ml就没装进去)%ld是个长整型是4个字节,所以它要读取4个字节的数据,所以读取了y的2个字节的数据以外还要再读取2个字节,拼成一个4个字节
    A+
热门评论