比較運算子 (== , != )也會自動型別轉換,例如下面的**中語句 newp[j] != (index & 0xff) , newp[j]會自動轉換為int型別,還會進行符合擴充套件,使得本來期望是相等的結果不相等。語句 newp[j] != (char)(index & 0xff) 進行了強制型別轉換,比較的就是newp[j]的低8位,可以得到預期結果。也可以對newp[j] 進行強制型別轉換,如 (unsigned char)newp[j] != (index & 0xff) , 但是這時候必須是nsigned char.
#include#include#include#include#include int compare_no(char *newp, int index)
int compare_yes(char *newp, int index)
int main()
型別轉換運算子
在程式設計過程中,我們經常需要把一種型別轉換為另外一種型別。在轉換過程中,我們需要關心兩件事情 1。這種型別轉換是否合法?2。轉換得規則如何?c 預設自動支援幾種型別轉換 基礎型別之間的轉換 派生類指標向基類指標的轉換 非常量型別向常量型別的轉換等等。對於其他型別間的轉換,則沒 有規定。舉例來說,c...
型別轉換運算子
在程式設計過程中,我們經常需要把一種型別轉換為另外一種型別。在轉換過程中,我們需要關心兩件事情 1。這種型別轉換是否合法?2。轉換得規則如何?c 預設自動支援幾種型別轉換 基礎型別之間的轉換 派生類指標向基類指標的轉換 非常量型別向常量型別的轉換等等。對於其他型別間的轉換,則沒有規定。舉例來說,cs...
型別轉換運算子
c 中4個型別轉換運算子 可以根據目的選擇乙個適合的運算子,而不是使用通用的型別轉換。用於將派生類指標轉換為基類指標,其主要用途是確保可以安全地呼叫虛函式。假設high和low是兩個類,而ph和pl的型別分別為high 和low 則僅當low是high的可訪問基類 直接或間接 時,下面的語句才將乙個...