老师,关于数组的问题

来源:6-3 一般指针,数组指针和指针数组

相信光变成光

2020-11-17

http://img1.sycdn.imooc.com/szimg/5fb3846509d4b8b210110173.jpg

老师,为啥会报错??

写回答

1回答

quickzhao

2020-11-17

0x80000000是十进制数2,147,483,648,超出32位int范围了,32位int最大2^32-1 = 2,147,483,647

0
2
quickzhao
回复
相信光变成光
首先,你要弄明白这里补码表示的原理,当我们说这里错误时是假设你这里是希望用一般补码的表示第一个数,那它这是异常的表示,因为有数据溢出。 但视频里是利用了这点来表示溢出后的得到的最小值,在表示上是可以的。 至于你的编译器为什么报错,是因为你用的编译器比较新,它要求你用明确的类型转换来表示的行为,而我的编译器比较旧(vs2015),所以我的不报错。 所以,要不你用和我一样的编译器,要不你在声明时明确告诉编译器你的类型是否是用signed int。
2020-11-17
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程