|
|
1
17
假设您的平台有8位字节,假设我们有位模式
现在
在大多数代码中,这真的不重要。为了实现重载,它们被视为三种不同的类型。指向这些类型之一的指针与指向其他类型的指针不兼容。尝试呼叫
使用
既然你不太可能对字符做一般的算术运算,那就不重要了
|
|
|
2
15
你误解了什么。签名字符总是签名的。无符号字符总是无符号的。但是,纯字符是有符号的还是无符号的是特定于实现的——这意味着它取决于编译器。这与int类型不同,所有类型都有符号(int与signed int相同,short与signed short相同)。更有趣的是,char、signed char和unsigned char在函数重载方面被视为三种不同的类型。这意味着您可以在同一编译单元中有三个函数重载:
因为int类型是相反的,所以不能
因为int和有符号int是相同的。 |
|
3
3
更正确的说法是,它是特定于编译器的,您不应该指望
否则,您将面临以下问题:假设您编写和调试程序
|
|
|
4
2
也许你指的是这样一个事实
|
|
|
5
0
有符号字符更像是在C中处理所有基变量类型的一个侥幸,一般来说,使用负字符实际上并不有用。 |
|
|
6
-4
有符号字符总是8位的,并且总是有符号位作为最后一位。 无符号字符总是8位,没有符号位。 据我所知,char总是无符号的。任何默认为有符号字符的编译器都将面临许多不兼容的程序。 |