Операция "запятая" обычно используется в двух случаях:
1. В заголовке цикла for - когда надо произвести несколько инициализаций и/или модифицировать несколько переменных по завершении итерации. Здесь использовании операции как-то оправдать ещё можно.
for (i = 0, j = n; i < j; ++i, --j) - вполне типичный код для обработки массива с двух сторон (определение палиндрома, реверс массива и т. п.).
2. Внутри выражения - исключительно для того, чтобы уместить пачку вычислений в одной строке - вместо того, чтобы разбить такое выражение на несколько более простых и понятных. Трюкачество, проходящее по разряду "говнокод".
Другие языки программирования и технологии
Зачем нужен оператор "запятая" в С++ ?
Это полезная операция, часто заметно сокращает программу.
Например, x>0?a:b=5 присвоит в зависимости от значения х пятерку или а, или b
Например, x>0?a:b=5 присвоит в зависимости от значения х пятерку или а, или b
Maxim Andriyanov
Это у Вас тернарный оператор же.
Димон Суслов
Точно, когда писал ответ, забыл вопрос, он ушел из вида на экране :(
Димон Суслов
Тогда, например, while(cin(x),x>0),,,
Димон Суслов
Тьфу, отвлекают...
Тогда, например, while(cin>>x,x>0),,,
Тогда, например, while(cin>>x,x>0),,,
Разделитель
Не встречал на практике.
Оно точно переопределяется?
Если да, то нужен затем же, зачем нужен оператор "+".
Ты же можешь переопределить оператор "+" так, чтобы он складывал вектора, например и возвращал (*this).
Так же и другой оператор с двумя параметрами можешь переопределить. Какая разница, что за оператор переопределяешь. Важно лишь число параметров.
Или вообще зачем нужна запятая безотносительно переопределения.
Может, и не нужна.
Пока не пришло в голову примера, где бы запятую нельзя было бы заменить пробелом.
Думаю...
Вот пример из C++, где все неоднозначно в случае, если есть 2 функции d - одна с одним аргументом, другая с двумя; и есть функция b, которая возвращает класс с переопределенным оператором "()" и есть функция b, которая возвращает, допустим, int.
d(b() (c))
d(b(),(c))
Оно точно переопределяется?
Если да, то нужен затем же, зачем нужен оператор "+".
Ты же можешь переопределить оператор "+" так, чтобы он складывал вектора, например и возвращал (*this).
Так же и другой оператор с двумя параметрами можешь переопределить. Какая разница, что за оператор переопределяешь. Важно лишь число параметров.
Или вообще зачем нужна запятая безотносительно переопределения.
Может, и не нужна.
Пока не пришло в голову примера, где бы запятую нельзя было бы заменить пробелом.
Думаю...
Вот пример из C++, где все неоднозначно в случае, если есть 2 функции d - одна с одним аргументом, другая с двумя; и есть функция b, которая возвращает класс с переопределенным оператором "()" и есть функция b, которая возвращает, допустим, int.
d(b() (c))
d(b(),(c))
Maxim Andriyanov
Вообще-то есть запятая и оператор "запятая" В C++.
У Вас в примере это просто запятая !
У Вас в примере это просто запятая !
Он почти никогда не используется, но нужен когда надо в одно выражение поместить несколько. Например, "for(int i =0; i < n; ++i, ++j);"
Magomed Amin
У меня чаще так:
for(int i = 0, n = array.count(); i < n; i++) { ...}
for(int i = 0, n = array.count(); i < n; i++) { ...}
Похожие вопросы
- Что значит возвращает значение функции? для чего нужен оператор return в си? как он работает?
- Зачем в c# нужен оператор ^ (OR)? В чем различие от ||?
- Оператор return в c#.Зачем он нужен?
- C++ поразрядные операторы
- Вопрос про оператор return в С++.
- Сколько, примерно, операторов имеют языки программирования?
- Справочник по операторам С++.
- Вопрос программистам и операторам станков с ЧПУ.
- Процедуры и операторы это одно и тоже?
- Узнать сколько знаков после запятой в числе? Visual Basic
Здесь есть ли оператор "запятая":https://otvet.mail.ru/answer/1983785544/cid-324229170/ ?