Chinaunix首页 | 论坛 | 博客
  • 博客访问: 849011
  • 博文数量: 90
  • 博客积分: 766
  • 博客等级: 军士长
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-18 08:42
个人简介

linux

文章分类

全部博文(90)

文章存档

2021年(2)

2020年(2)

2017年(1)

2015年(11)

2014年(1)

2013年(53)

2012年(16)

2011年(4)

分类: C/C++

2013-03-15 10:00:40

        今天遇到一个问题:

点击(此处)折叠或打开

  1. char a = 0xff;

  2. if (0xff == a){xxx;}

        谁知xxx里面的东西,怎样都不运行。然后再仔细关注了下。发现a的值转换成int后,成了0xffffffff。在运算符两边的类型在操作之前都会转换为一个相同的类型这个就前提,而对这里而言,int型就足够容纳这两个数字了。但是为什么a提升成int之后,值却变成了0xffffffff.

        C语言当中如何定义类型并不是最重要的,对于变量而言,重要的如何使用这个变量。因为变量会根据使用的方式来隐式转换。

        这里仍不清楚,望知情人解答。
阅读(1188) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~