6/2 (1 + 2) возвращая ошибку 2 не является функцией - PullRequest
3 голосов
/ 31 июля 2011

Следующий оператор генерирует ошибку во время компиляции.

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

Может кто-нибудь объяснить, почему компилятор выдает ошибку.

Ответы [ 4 ]

11 голосов
/ 31 июля 2011

Вам не хватает математического знака, например +, -, *, /.

Возможно, вы хотите 6/(2*(1+2)) или (6/2)*(1+2).

Если вы оставите выход, C интерпретирует его как вызов функции, как и обычные функции printf("stuff") (указано через открывающие скобки без математического оператора).Поэтому он думает, что 2(1+2) вызывает функцию 2 с аргументом 1+2.

2 голосов
/ 31 июля 2011

Вы не можете пропустить оператор умножения.Попробуйте int a=6/2*(1+2);

1 голос
/ 31 июля 2011

Вы должны сделать

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

В противном случае он пытается интерпретировать 2 как функцию, например int a = 2(argument);

0 голосов
/ 31 июля 2011

Нет операции между 2 и (1 + 2).Если вы хотите умножить, вы должны сообщить C: синтаксис программирования обычно строг с этим материалом.

Правильный синтаксис:

int a = 6 / 2 * (1 + 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...