size_t 的陷阱
来源:互联网 发布:固定资产系统源码 编辑:程序博客网 时间:2024/04/30 09:14
size_t是无符号整形,平常用的时候没有觉得有什么问题,但是今天的一个程序怎么弄就是不对,反复检查逻辑错误并没有发现有什么错误,而且程序本身逻辑并不复杂,搞得我头很大。后来经过一番探索,终于发现其错误发生在size_t上。废话不多说,直接给代码。
- #include <iostream>
- using namespace std;
- int main() {
- size_t t = 1;
- int z = -1;
- if(z < t) {
- cout << "i'm in" << endl;
- }
- cin.get();
- }
t是size_t类型的,按照道理说这个if条件判断肯定是能进去的,但是因为size_t类型是无符号,int型是有符号,结果就很妖怪的没有进入if里面。结果你会发现,编译器把有符号的z转换成了无符号的z,也就变成了4294967295,这样一来if条件能判断为true才怪!
- size_t 的陷阱
- size_t 的陷阱
- c++ 小心 size_t 的一个陷阱
- C语言中size_t的陷阱
- 与size_t有关的C语言编程失误——memset,memcpy系列函数使用陷阱
- size_t引起的问题
- size_t的一个疑问
- size_t类型的用途
- size_t引发的血案
- size_t的秘密
- size_t的使用
- size_t的解释
- size_t的定义
- size_t的用法
- size_t
- size_t
- size_t
- size_t
- 现有 Delphi 项目迁移到 Delphi 2009(Tiburon) 中的注意事项
- daydream
- 关于Delphi2007 Remote Data Module 模块无法注册的问题的解决
- 感动
- linux下上校园网常见问题
- size_t 的陷阱
- 你是我的眼睛
- 数据挖掘能做什么
- EXECUTE IMMEDIATE用法小解
- RBAC
- ExtJS专题-TreePanel(1)
- 关于游戏开发的一点点想法
- 十招能改善你的人际关系
- 经典图片