简单循环中的预期表达式错误C

问题描述:

我在尝试将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;'可以正常工作) –

如果你正在尝试类型转换,你必须做到:

(char)x; 

char(x); 
+1

请注意,C++允许(尽管不再鼓励)'char(x)'表示法作为替代类型。然而,你说得对,C不允许这样做。 –

你被明确类型转换,但同时这样做,你使用的是C++符号。

把上面一行是:

letter = (char)x; 

如果更改xchar,你并不需要强制转换x

letter = x; 

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

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

只要避免不必要的铸造,也有一个更干净的代码:

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

无需char letter在所有,不需要幻数