繁体   English   中英

Char数据类型算术表达式

[英]Char data type arithmetic expression

int main()

{

        char a = 'P';  

        char b = 0x80;  

        printf("a>b  %s\n",a>b ? "true":"false");  

        return 0;

}

为什么评估为真?

在您的系统上, char已签名。 它也是八位,因此0x80溢出有符号的8位整数可以表示的内容。 结果值为-128。 由于P为某个正值,因此它大于-128。

C允许对char类型进行签名或取消签名。 这是一个特殊的(讨厌的)属性,与其他整数类型(例如int 通常建议使用unsigned char显式声明字符类型,以便更确定行为而不是依赖于实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM