2012-03-22 28 views
4

我可以理解signed charunsigned之間的區別。但是不要在操作中使用相應類型的指針? Cos sizeof(char)sizeof(unsigned char)始終是相同的(或者是否有任何計數器示例?)簽名字符指針和未簽名字符指針之間的工作區別是什麼?

對於指針,只有數據類型的大小應該很重要。如果我交替使用char *unsigned char *,是否有任何缺陷?

我din't找到這些職位有用:(

Difference between unsigned char and char pointers

Why short* instead of char* for string? Difference between char* and unsigned char*?

+0

可能是,這可以幫助。 http://stackoverflow.com/questions/75191/what-is-an-unsigned-char – 2012-03-22 16:11:13

回答

4

下面是基於在由每個指針類型指出範圍類型的差的計數器例如:

#include <stdio.h> 
int main() { 
    unsigned char *uc; 
    char *c; 
    unsigned char v = 128; 
    uc = &v; 
    c = &v; 
    if (*uc != *c) 
    printf("there is difference\n"); 
    return 0; 
} 
3

指針的類型告訴編譯器指針指向的東西的類型 - 因此使得t他編譯器確保您正確使用該指針,並確保您沒有犯任何錯誤。

帶有錯誤和警告的編譯器正在盡最大努力確保您開發的代碼是正確的。注意他們 - 編寫編譯器的人正試圖幫助你。