我對C++仍然很陌生,所以這可能是一個愚蠢的問題。在下面的代碼中,爲什麼當我將索引的類型更改爲signed char時,index > 25
的計算結果爲true。不是一個有符號的字符只是一個1字節的整數?C++ - 數據類型不同地評估
#include <iostream>
using namespace std;
char lowercase [26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int main() {
short index;
cout << "Enter a number 0 to 25: ";
cin >> index;
if (index > 25 || index < 0) {
cout << "That number is out of range." << endl;
return 0;
}
cout << "The lowercase letter for this number is " << lowercase[index] << "." << endl;
return 0;
}
爲什麼'int'會在'short'時出現? – tadman
你沒有說你輸入了什麼值,或者'index'實際上接收了什麼值。而且你不檢查'cin >>'是否成功或失敗。 –
我不知道爲什麼我選擇使用「short」而不是「int」。 –