簡體   English   中英

為什么 char 是無符號的,而 int 默認是有符號的?

[英]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++ 語言指定允許任一種。 沒有“默認”選項。 如果您希望編寫跨不同系統工作的程序,則不能假設一種選擇。

請注意, charsigned charunsigned char都是三種不同的類型,無論char是否有符號。 相比之下, intsigned int是同一種類型的兩個名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM