unsigned char和char有什么不同?

C语言 码拜 9年前 (2015-05-11) 954次浏览 0个评论
 

我想知道unsigned char 和 char有什么区别?是不是和编译器有关?如果是,那么在vc下怎样?

如果他们没有区别,为什么有两个呢?

5分
有无符号啊,char是否有符号我印象中是编译器相关的,但是实际上大多数编译器都是带符号的。

有无符号的区别是很大的, 比如这样的比较
char a = getc(stdin);
if(a == 255)
{
  foo();
}

foo 将永远不会被调用。

char就是单字节数据 , 放数据值的。有效数据位是8位
无符号的有效数据位为7位,第一位为符号位
5分
开来你真是“混合体”,你说反了。
你定义一个char a和unsigned char a,然后被他们都赋个-1试试。
第一个的值打印出来就是-1,第二个的值打印出来就是255。
所以是他们的取值范围不同,char是-127~128,unsigned char是0~255
5分
C++编译器把 char, signed char, unsigned char看作不同的类型
VC中char缺省为signed char,可用/J编译参数来改变 
signed char, unsigned char差别主要体现在于int互相转化的时候
哈哈哈哈
255和127的区别
5分
如果不进行数字相关的操作,关系倒不大
5分
char -127~128
unsigned char 0~255
楼上说的对,“ 如果不进行数字相关的操作,关系倒不大”。但如果用于计算则应当小心符号的问题。
我明白了,谢谢各位,截帖散分喽~

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明unsigned char和char有什么不同?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!