[英]Why char is unsigned and int is signed by default?
我使用 gcc 作為我的 c++ 編譯器,當我聲明一個 int 數據類型的變量時,默認情況下它被視為已簽名。 但在 char 的情況下,它被視為無符號。 這是為什么? 因為在 xcode IDE 中,char 默認被視為已簽名。
#include<iostream>
using namespace std;
int main() {
system("clear");
int x;
char y;
cout<<INT_MIN<<" "<<INT_MAX<<endl;
cout<<CHAR_MIN<<" "<<CHAR_MAX<<endl;
return 0;
}
OUTPUT:
-2147483648 2147483647
0 255
char
是您系統上的無符號類型,因為實現您的系統的人選擇它應該是無符號的。 這種選擇因系統而異,C++ 語言指定允許任一種。 沒有“默認”選項。 如果您希望編寫跨不同系統工作的程序,則不能假設一種選擇。
請注意, char
、 signed char
和unsigned char
都是三種不同的類型,無論char
是否有符號。 相比之下, int
和signed int
是同一種類型的兩個名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.