Играет ли «,» какую-либо роль в фрагменте кода, написанном ниже? Будет ли код вызывать ошибку компилятора? - PullRequest
2 голосов
/ 25 марта 2011
int main()
{
    int i = 1, 2;
    printf("%d", i);
}

Что здесь означает запятая и является ли это законным Objective-C или C?Спасибо!

Ответы [ 2 ]

5 голосов
/ 25 марта 2011

Код выдаст ошибку, так как запятая в этом контексте вводит новое определение переменной, а 2 не является допустимым именем переменной.

В других случаях оператор запятой может бытьиспользуется для «сложения» выражений, значением последнего выражения будет значение всего выражения.

2 голосов
/ 25 марта 2011

Почему бы вам просто не попробовать его скомпилировать?

Это не скомпилируется. Вы не можете назначить i два разных значения (int i = 1,2) или что-то еще, что вы пытаетесь сделать. оператор запятой C не работает так, и это ошибка в вашем коде.

Более разумное назначение было бы что-то вроде int i = 1, s = 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...