Comma-Operator – вопросы и ответы

80
голосов
1
ответ
Я пробовал следующий код в gcc: #include<stdio.h> int main() { int a=3,2,1;//////////////////////ERROR!////////////////////////// printf("%d", a); return 0; } Я ожидал, что он будет успешно к...
3 дня, 13 часов назад J...S
73
голоса
1
ответ
Я немного смущен, почему этот макрос не скомпилирован: #define LUA_GET_FIELD(Lua, idx, name, type) (\ lua_getfield((Lua), (idx), (name)), \ typeof(lua_to##type) __result = lua_to##type((Lua), -1), ...
1 неделя, 1 день назад Rena
73
голоса
1
ответ
Рассмотрим код: if(x = a/b, a%b) printf("do this"); else printf("do that"); Теперь, если я заменяю if statement на if(x = a/b && a % b) . Тогда это работает. Поэтому я хочу знать, что замен...
1 неделя, 2 дня назад Ashish Rawat
72
голоса
1
ответ
Я читал язык программирования C и нашел это предложение: Запятые, которые разделяют... переменные в объявлениях... не являются операторами запятой и не гарантируют оценку слева направо. Если да, то...
1 неделя, 3 дня назад Orpheus
290
голосов
2
ответа
Я хотел бы увеличить две переменные в состоянии for -loop вместо одного. Так что-то вроде: for (int i = 0; i != 5; ++i and ++j) do_something(i, j); Каков синтаксис для этого?
2 недели назад Peter Smit
62
голоса
1
ответ
Строка ниже находится внутри цикла for. Если метод выходит из строя, его нужно сломать. CATEGORY_1 - это перечисление. Я добавил это перечисление как новый параметр для метода AddToList со значение...
2 недели назад Sriram Subramanian
74
голоса
1
ответ
Кипящая проблема, с которой я сталкиваюсь, я могу инициализировать переменную как int, сначала выполнив лямбда do-nothing в выражении с запятой, например: int main(){ auto x = ( []{}(), 10 ); // sa...
2 недели назад KnowItAllWannabe
62
голоса
1
ответ
Возможный дубликат: Можно ли объявить две переменные разных типов в цикле for? Рассмотрим этот код: for( std::vector<std::string>::iterator it = myVec.begin(), int i = 3; it < myVec.
2 недели, 1 день назад Igor
72
голоса
1
ответ
Это было задано в интервью. Каков результат нижеприведенного фрагмента? #include <iostream> using namespace std; int main() { cout << (3,2,1)-(1,2,3) << endl; // in C++ too this p...
2 недели, 3 дня назад highlander141
63
голоса
1
ответ
Сначала я хотел попробовать, если бы ему разрешили сделать что-то вроде: vector<int> a{1, 2}; vector<int> b{3, 4}; for(auto ai : a, auto bi : b) { } Это не сработало, но я ожидал этого ...
3 недели, 2 дня назад Jean-Michaël Celerier
109
голосов
1
ответ
Отвечая на этот вопрос , я наткнулся на этот код... #include <iostream> int main() { int const income = 0; std::cout << "I'm sorry your income is: " < income; // this is line 6 } ......
3 недели, 3 дня назад razlebe
115
голосов
1
ответ
Я никогда не использую оператор запятой. Но иногда, когда я пишу некоторые рекурсии, я делаю глупую ошибку: я забыл имя функции. Поэтому возвращается последний операнд, а не результат рекурсивного ...
3 недели, 3 дня назад RiaD
-5
голосов
1
ответ
Я читал этот отрывок из руководства GNU C: Вы используете оператор запятой для разделения двух (якобы связанных) выражений. Позже в описании: Если вы хотите использовать оператор запятой в аргумент...
3 недели, 5 дней назад Karim Manaouil
80
голосов
1
ответ
В OpenCV работает следующий синтаксис: Mat R = (Mat_<double>(4, 4) << 1, 0, 0, 0, 0, cos(alpha), -sin(alpha), 0, 0, sin(alpha), cos(alpha), 0, 0, 0, 0, 1); Как это может быть? Какой опе...
3 недели, 5 дней назад Suzan Cioc
80
голосов
1
ответ
Я получаю ошибки в строках 102, 115, and 128 . Что я делаю не так? В нем говорится: Ожидаемый неквалифицированный идентификатор перед числовой константой и я не знаю, что это значит. Я попытался ис...
4 недели назад Brandon
62
голоса
1
ответ
Я прочитал этот вопрос, и я хочу добавить к нему, что то, что не может быть сделано , с помощью оператор запятой . Это меня очень смутило, поскольку я могу это сделать: int arr[3]; arr[0]=1,arr[1]=...
1 месяц назад Fahad Uddin
436
голосов
3
ответа
Как работает оператор запятой на С++? Например, если: a = b, c; Получается ли в итоге значение b или c? (Да, я знаю, что это легко проверить - просто документируйте здесь, чтобы кто-то быстро нашел...
1 месяц назад Joe Schneider
72
голоса
1
ответ
int a,b; a = 1 ? 1,2 : 3,4; // a = 2 b = 0 ? 1,2 : 3,4; // b = 3 Оператор-запятая всегда возвращает правую часть запятой, но если мы присваиваем переменную, она возвращается влево, за исключением с...
1 месяц назад Magiczne
144
голоса
1
ответ
Я написал следующий код: #include <iostream> using namespace std; int f() { cout << "f()" << endl; return 3; } int v() { cout << "v()" << endl; return 4; } int main() ...
1 месяц назад elyashiv
107
голосов
2
ответа
Если вы видите этот код, class A{ public: A(int a):var(a){} int var; }; int f(A obj) { return obj.var; } int main() { //std::cout<<f(23); // output: 23 std::cout<<f(23, 23); // error: t...
1 месяц назад Lazer
204
голоса
7
ответов
В C.1.3 С++ IS (2003. Он также в С++ 11 IS), стандарт указывает разницу между ISO C и С++; а именно для char arr[100]; sizeof(0, arr) возвращает sizeof(char*) в C, но 100 в С++. Я не могу найти док...
8 лет, 9 месяцев назад John
112
голосов
3
ответа
Я собираю назначение на С++ для класса, который я преподаю. У меня есть функция, которую я экспортирую студентам, которые я бы хотел, чтобы они звонили в разные моменты своей программы, чтобы во вр...
3 года, 2 месяца назад templatetypedef
72
голоса
2
ответа
Я могу сделать это внутри decltype() : auto g() -> decltype(1, "", true, new int); Но не это: template <class... Args> auto g(Args&&... args) -> decltype(args...); Это не удаетс...
5 лет, 5 месяцев назад template boy
189
голосов
1
ответ
Например, uninitialized_copy определяется в стандарте как: Эффекты: for (; first != last; ++result, ++first) ::new (static_cast<void*>(&*result)) typename iterator_traits<ForwardIterat...
8 лет, 3 месяца назад ybungalobill
95
голосов
3
ответа
Если я пишу код с помощью оператора запятой, например: int i; i = 5, i++, i++; вызывает ли это неопределенное поведение?
2 года, 6 месяцев назад Jayesh
95
голосов
1
ответ
Рассмотрим простой пример: int foo() { return 3; } template <int> struct Bar {}; int a; int main() { int b; //Bar<((void)foo(), 1)> bar1; //case 1. compilation error as expected Bar<...
1 год, 4 месяца назад W.F.
119
голосов
2
ответа
В соответствии с эта таблица приоритетов , оператор запятая лево-ассоциативный, То есть a, b, c анализируется как (a, b), c . Это необходимость? Не было бы a, (b,
7 лет, 3 месяца назад fredoverflow
88
голосов
4
ответа
У меня есть три фрагмента кода. Это: 1,7; //yes, that all the code компилируется в порядке. Это: double d = (1, 7); также компилируется в порядке. Но этот: double d = 1, 7; не удается скомпилироват...
8 лет, 3 месяца назад sharptooth
108
голосов
2
ответа
После прочтения замечательного ответа о запятом в C/C++ ( что делает оператор запятой - и я использую тот же примерный код), я хотел знать, какой из наиболее читаемых, поддерживаемых и предпочтител...
4 года назад Michael
115
голосов
7
ответов
Я ищу простой способ построения массива строк во время компиляции. Для теста я собрал класс с именем Strings , который имеет следующие члены: Strings(); Strings(const Strings& that); Strings(co...
10 лет, 5 месяцев назад miked
301
голос
5
ответов
Если я использую: 1.09 * 1; // returns "1.09" Но если я использую: 1,09 * 1; // returns "9" Я знаю, что 1,09 не является числом. Что делает запятая в последнем фрагменте кода? Дополнительные пример...
9 лет, 7 месяцев назад Topera
52
голоса
1
ответ
Продолжая чтение библиотеки диапазонов-v3, я понял, что все проверки правильных выражений для типов шаблонов имеют хвостовое выражение "42", и мне интересно, в чем его цель. Например: namespace con...
2 года, 7 месяцев назад Peregring-lk
169
голосов
3
ответа
В wtfjs я обнаружил, что следующее является законным javascript. ",,," == Array((null,'cool',false,NaN,4)); // true Аргумент (null,'cool',false,NaN,4) выглядит как кортеж для меня, но javascript не...
8 лет, 2 месяца назад Grilse
94
голоса
1
ответ
int main() { switch(1,2) { case 1:printf("1");break; case 2:printf("2");break; default: printf("error");break; } } Действительно ли это в c? Я думал, что этого не должно быть, но когда я его скомпи...
3 года, 9 месяцев назад Dhruva Mehrotra
80
голосов
2
ответа
Это выполняется в ActionScript 3 и JavaScript. Зачем? Я знаю, как работают && и || , но список? Является ли это AS3 конкретным? Это на других языках? Я - дыхательный программист PHP/AS2. Ил...
11 лет назад Assembler
143
голоса
4
ответа
Почему выражение, указанное внутри оператора запятой (например, пример ниже), не считается постоянным выражением? Например, int a = (10,20) ; если задано в глобальной области, появляется ошибка: "и...
10 лет, 4 месяца назад Ganesh Gopalasubramanian
471
голос
7
ответов
Прочитав этот ответ о поведении и точках последовательности undefined, я написал небольшую программу: #include <stdio.h> int main(void) { int i = 5; i = (i, ++i, 1) + 1; printf("%d\n", i); re...
4 года, 10 месяцев назад gsamaras
51
голос
3
ответа
Я прошел через какой-то код elses, и я не смог получить синтаксис следующего c = x<0 ? x = -x,'L':'R'; а также if(x) x--,putchar(c); что в первом переменная c назначается 'L' или 'R'.And во втор...
6 лет, 10 месяцев назад vinit
64
голоса
6
ответов
У меня здесь бесконечный цикл, но почему? int end = 5; for(int i = 0; i < end, printf("at condition i=%d\n",i); ++i) { printf("inside i=%d\n",i); }
5 лет, 9 месяцев назад Semih Kekül
108
голосов
3
ответа
После прочтения обоих следующих... Что делает оператор запятой? Как работает Comma Operator Я все еще не уверен, что не могу разобрать следующий оператор, который я нашел в другом
2 года, 5 месяцев назад Toothpick Anemone
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема