2017-05-27 47 views
0

我在嘗試將char(x)指定爲letter的行上出現「預期表達式」錯誤。簡單循環中的預期表達式錯誤C

我的代碼如下:

#include <stdio.h> 

int main(void) { 
    printf("Hello, World!\n"); 
    char letter; 
    for(int x=97; x<=122; x++){ 
     letter = char(x); //error occurs on this line 
     printf("%c\n", letter); 
    } 
    return 0; 
}  

任何幫助,不勝感激!

+3

這不是你如何施放變量。試試'letter =(char)x;' –

+1

順便說一句,你根本不需要演員。 'letter = x'也可以工作 –

+3

char(x)'表示法在C++中有效,但在C中無效。在C中,必須使用'(char)x'符號進行轉換,儘管不需要('letter = x;'可以正常工作) –

回答

4

如果你正在嘗試類型轉換,你必須做到:

(char)x; 

char(x); 
+1

請注意,C++允許(儘管不再鼓勵)'char(x)'表示法作爲替代類型。然而,你說得對,C不允許這樣做。 –

3

你被明確類型轉換,但同時這樣做,你使用的是C++符號。

把上面一行是:

letter = (char)x; 
1

如果更改xchar,你並不需要強制轉換x

letter = x; 

另一個消除,你可以完全放棄信和使用:

printf("%c\n", x); 
1

只要避免不必要的鑄造,也有一個更乾淨的代碼:

for(int x='a'; x<='z'; x++){ 
    printf("%c\n", x); 
} 

無需char letter在所有,不需要幻數