//開發平台VC++6.0
#include<stdio.h>
#include<string.h>
int strLonger(char*,char*);
void main(){
char *s = "d";
char *t = "Id";
printf("%d\n",strLonger(s,t));
}
int strLonger(char *s, char *t){
return strlen(s) - strlen(t) > 0;
}
//輸出結果為 1
//其中<string.h>中的strlen()返回unsigned int。
//在C語言中,當一個無符號數和一個有符號數進行比較運算時,有符號數會被隱含地轉換成無符號數,並假設這兩個數都是非負數,然後進行比較運算。
//當把一個有符號數轉換成無符號數時,其底層的二進制表示沒有改變,僅僅是對其進行了不同的解釋。
//所以上述函數中strlen(s)與strlen(t)都是無符號數,strlen(s) - strlen(t) > 0 的運算過程中會把0隱含轉換為無符號數,將整個不等式按照
//無符號數來計算。1-2的16進制為0XFFFFFFFF,如果將其視為無符號數將是一個很大的數值,當然比0大
//所以strLonger()返回1。