6/2(1 + 2)返回错误2不是功能

时间:2011-07-31 16:27:36

标签: c

以下语句产生编译时错误。

 int a=6/2(1+2);

有人可以解释为什么编译器会生成错误。

4 个答案:

答案 0 :(得分:11)

您遗漏了一个数学符号,例如+-*/

您可能需要6/(2*(1+2))(6/2)*(1+2)

如果您退出注销,C会将其解释为函数调用,就像通常的函数printf("stuff")一样(通过不带数学运算符的左括号表示)。因此,它认为2(1+2)使用参数2调用函数1+2

答案 1 :(得分:2)

您不能跳过乘法运算符。试试int a=6/2*(1+2);

答案 2 :(得分:1)

你必须做

int a = 6/2*(1+2);

否则它会尝试将2解释为函数,如int a = 2(argument);

答案 3 :(得分:0)

2(1 + 2)之间没有任何操作。如果你想要成倍增加,你必须让C知道:编程语法通常都是严格的。

正确的语法:

int a = 6 / 2 * (1 + 2);