2014-01-28 65 views
2

在C,如何將字符值賦給C中的整型變量?

... 
int num = 'a'; 
... 

我的問題很簡單。如何將一個字符(如'0','a','b')賦給整型變量而不會在C語言中出現任何類型錯誤?

+1

搜索到'型casting' –

+1

@AnshDavid錯誤答案。問題中沒有任何轉換,「鑄造」意味着使用明確的轉換。 –

+0

@AnshDavid類型轉換是當我寫'(類型)值',以將'value'強制轉換爲'type'類型時。 – glglgl

回答

4

由於歷史原因(主要是),字符常量是int類型的C.

但即使他們不一樣

int num = 'a'; 

初始化或類似

num = 'a'; 
分配

仍然是完全合法的。任何數字類型的值可能被分配給任何(其他)數值類型的變量,並且該值將被隱式轉換(這可能涉及表示的改變和/或溢出的風險)。

char及其親屬unsigned charsigned char是數字類型,特別是整數類型。

2

該字符只是一個整數值的表示形式。例如,'0'可以寫成0x3048'a'0x6197替代,等等

所以分配是完全有效的。

0

你可以。 C字符常量是int。這使得它與C++有點不同。

0

看一看herehere。每個字符都是一個數字,實際上計算中的所有內容都是數字,只是其中的一些(取決於類型和值)呈現爲字符。

對於存儲字符變量類型應該是charwchar_t但它可以是任何其他類型,因爲它們都只是內存中的一個數字。

0

(對不起,我讀的問題錯了,寫了一個評論,我的壞)----->

int main() 
{ 

    int num = 'a'; 
    printf("%c", num); 
return 0; 
} 

輸出

a