简单循环中的预期表达式错误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;
}
任何帮助,不胜感激!
答
如果你正在尝试类型转换,你必须做到:
(char)x;
不
char(x);
+1
请注意,C++允许(尽管不再鼓励)'char(x)'表示法作为替代类型。然而,你说得对,C不允许这样做。 –
答
你被明确类型转换,但同时这样做,你使用的是C++符号。
把上面一行是:
letter = (char)x;
答
如果更改x
成char
,你并不需要强制转换x
。
letter = x;
另一个消除,你可以完全放弃信和使用:
printf("%c\n", x);
答
只要避免不必要的铸造,也有一个更干净的代码:
for(int x='a'; x<='z'; x++){
printf("%c\n", x);
}
无需char letter
在所有,不需要幻数。
这不是你如何施放变量。试试'letter =(char)x;' –
顺便说一句,你根本不需要演员。 'letter = x'也可以工作 –
char(x)'表示法在C++中有效,但在C中无效。在C中,必须使用'(char)x'符号进行转换,尽管不需要('letter = x;'可以正常工作) –