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

195
голосов
7
ответов
В C.1.3 С++ IS (2003. Он также в С++ 11 IS), стандарт указывает разницу между ISO C и С++; а именно для char arr[100]; sizeof(0, arr) возвращает sizeof(char*) в C, но 100 в С++. Я не могу найти док...
8 лет, 8 месяцев назад John
107
голосов
3
ответа
Я собираю назначение на С++ для класса, который я преподаю. У меня есть функция, которую я экспортирую студентам, которые я бы хотел, чтобы они звонили в разные моменты своей программы, чтобы во вр...
3 года назад templatetypedef
69
голосов
2
ответа
Я могу сделать это внутри decltype() : auto g() -> decltype(1, "", true, new int); Но не это: template <class... Args> auto g(Args&&... args) -> decltype(args...); Это не удаетс...
5 лет, 3 месяца назад template boy
182
голоса
1
ответ
Например, uninitialized_copy определяется в стандарте как: Эффекты: for (; first != last; ++result, ++first) ::new (static_cast<void*>(&*result)) typename iterator_traits<ForwardIterat...
8 лет, 1 месяц назад ybungalobill
92
голоса
3
ответа
Если я пишу код с помощью оператора запятой, например: int i; i = 5, i++, i++; вызывает ли это неопределенное поведение?
2 года, 5 месяцев назад Jayesh
91
голос
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 год, 2 месяца назад W.F.
114
голосов
2
ответа
В соответствии с эта таблица приоритетов , оператор запятая лево-ассоциативный, То есть a, b, c анализируется как (a, b), c . Это необходимость? Не было бы a, (b,
7 лет, 1 месяц назад fredoverflow
84
голоса
4
ответа
У меня есть три фрагмента кода. Это: 1,7; //yes, that all the code компилируется в порядке. Это: double d = (1, 7); также компилируется в порядке. Но этот: double d = 1, 7; не удается скомпилироват...
8 лет, 2 месяца назад sharptooth
104
голоса
2
ответа
После прочтения замечательного ответа о запятом в C/C++ ( что делает оператор запятой - и я использую тот же примерный код), я хотел знать, какой из наиболее читаемых, поддерживаемых и предпочтител...
3 года, 11 месяцев назад Michael
110
голосов
7
ответов
Я ищу простой способ построения массива строк во время компиляции. Для теста я собрал класс с именем Strings , который имеет следующие члены: Strings(); Strings(const Strings& that); Strings(co...
10 лет, 4 месяца назад miked
288
голосов
5
ответов
Если я использую: 1.09 * 1; // returns "1.09" Но если я использую: 1,09 * 1; // returns "9" Я знаю, что 1,09 не является числом. Что делает запятая в последнем фрагменте кода? Дополнительные пример...
9 лет, 5 месяцев назад Topera
50
голосов
1
ответ
Продолжая чтение библиотеки диапазонов-v3, я понял, что все проверки правильных выражений для типов шаблонов имеют хвостовое выражение "42", и мне интересно, в чем его цель. Например: namespace con...
2 года, 5 месяцев назад Peregring-lk
162
голоса
3
ответа
В wtfjs я обнаружил, что следующее является законным javascript. ",,," == Array((null,'cool',false,NaN,4)); // true Аргумент (null,'cool',false,NaN,4) выглядит как кортеж для меня, но javascript не...
8 лет назад Grilse
90
голосов
1
ответ
int main() { switch(1,2) { case 1:printf("1");break; case 2:printf("2");break; default: printf("error");break; } } Действительно ли это в c? Я думал, что этого не должно быть, но когда я его скомпи...
3 года, 8 месяцев назад Dhruva Mehrotra
76
голосов
2
ответа
Это выполняется в ActionScript 3 и JavaScript. Зачем? Я знаю, как работают && и || , но список? Является ли это AS3 конкретным? Это на других языках? Я - дыхательный программист PHP/AS2. Ил...
10 лет, 10 месяцев назад Assembler
137
голосов
4
ответа
Почему выражение, указанное внутри оператора запятой (например, пример ниже), не считается постоянным выражением? Например, int a = (10,20) ; если задано в глобальной области, появляется ошибка: "и...
10 лет, 3 месяца назад Ganesh Gopalasubramanian
452
голоса
7
ответов
Прочитав этот ответ о поведении и точках последовательности undefined, я написал небольшую программу: #include <stdio.h> int main(void) { int i = 5; i = (i, ++i, 1) + 1; printf("%d\n", i); re...
4 года, 8 месяцев назад gsamaras
49
голосов
3
ответа
Я прошел через какой-то код elses, и я не смог получить синтаксис следующего c = x<0 ? x = -x,'L':'R'; а также if(x) x--,putchar(c); что в первом переменная c назначается 'L' или 'R'.And во втор...
6 лет, 8 месяцев назад vinit
61
голос
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 лет, 7 месяцев назад Semih Kekül
104
голоса
3
ответа
После прочтения обоих следующих... Что делает оператор запятой? Как работает Comma Operator Я все еще не уверен, что не могу разобрать следующий оператор, который я нашел в другом
2 года, 4 месяца назад Toothpick Anemone
75
голосов
2
ответа
Возможный дубликат: Оператор с запятой С++ Использование C-запятой Я не новичок в С++, но это первый раз, когда я вижу следующий код:
7 лет, 4 месяца назад seeker
-6
голосов
0
ответов
Недавно я наткнулся на этот фрагмент кода C: #include<stdio.h> void f(int a,int b) { printf("%d",a); } int main() { f((1,3),2); } Выходной сигнал программы равен 3. Что меня озадачивает, так ...
1 год, 2 месяца назад Abhilash Mishra
-8
голосов
2
ответа
#include <stdio.h> #include <math.h> float math(int, int, int, int, int, float, float, float); main() { int a, b, c, d, e; float sum, avg, sd; printf("Enter Five Integers->"); scanf(...
2 года, 11 месяцев назад Muneeb Ahmed
296
голосов
4
ответа
Это (обратите внимание на оператор запятой ): #include <iostream> int main() { int x; x = 2, 3; std::cout << x << "\n"; return 0; } выводит 2 . Однако, если вы используете return ...
3 года, 5 месяцев назад ps95
49
голосов
3
ответа
Несколько месяцев назад я изучил основы C++. Недавно я нашел цикл while, который выглядит так. Я хочу понять, как это работает. while(cin>>n>>m,n||m) { does something; }
3 года, 9 месяцев назад Reshad
103
голоса
3
ответа
Я наткнулся на этот фрагмент кода 1 int return_printChar1() { // code // oops! no return statement } int return_printChar2() { // code return printf("Return"); } int main() { int i; // some more co...
8 лет, 10 месяцев назад Prasoon Saurav
84
голоса
1
ответ
Я пишу код следующим образом: #include <stdlib.h> int main(void) { void *kilobyte; kilobyte = malloc(1024); kilobyte = NULL, free(kilobyte); return 0; } для симметрии, что приятно. Но я никог...
3 года, 4 месяца назад Marius Macijauskas
59
голосов
2
ответа
Я думаю, что я где-то видел, что запись более 1 команды, разделенной запятой , является неопределенным поведением. Значит, следующий код генерирует неопределенное поведение? for (i=0, j=3, k=1; i&l...
4 года, 6 месяцев назад MOHAMED
49
голосов
3
ответа
Я изучаю C++ в свое свободное время, и я реализую класс, который перегружает индексы / [] . Теперь я хотел бы передать два или более аргумента операторам нижнего индекса следующим образом (разделен...
2 года, 9 месяцев назад TBZ92
86
голосов
2
ответа
Есть ли причина использовать скалярный оператор запятой где угодно, кроме как в цикле for ?
10 лет назад Eugene Yarmash
-3
голоса
1
ответ
Я часто использую оператор запятой (в C) при решении проблем на таких сайтах, как CodeForces. и я заметил, что для моих решений, похоже, требуется больше времени выполнения, чем большинство других ...
1 год, 8 месяцев назад Omar Alhelo
91
голос
3
ответа
int main() { int a = (1,2,3); int b = (++a, ++a, ++a); int c= (b++, b++, b++); printf("%d %d %d", a,b,c); } Я начинаю программировать. Я не понимаю, как эта программа показывает мне вывод 6 9 8 .
4 года, 2 месяца назад Dudupoo
61
голос
3
ответа
Я пытался запустить следующий код и наткнулся на некоторые результаты. Может кто-нибудь, пожалуйста, объясните: int number = {12,13,14}; printf("%d",number); Над кодом печатает вывод как 12 . Если ...
6 лет, 4 месяца назад user4910881
205
голосов
9
ответов
Я видел этот код: if (cond) { perror("an error occurred"), exit(1); } Зачем вам это делать? Почему не просто: if (cond) { perror("an error occurred"); exit(1); }
6 лет, 6 месяцев назад Kam
-3
голоса
2
ответа
Существует глобальная функция, которая регистрирует службы: // services call this to register upon creation extern void RegisterService(adapter::Service *s); Затем где-то в.cpp файле некоторая служ...
6 лет назад Pixar
84
голоса
2
ответа
Являются ли следующие два кодовых блока точно одинаковыми и достигают того же самого? Он отображает то же самое, когда я запускаю программу, но я был бы признателен за некоторые строгие объяснения....
6 лет, 9 месяцев назад Rüppell's Vulture
96
голосов
2
ответа
рассмотрим следующую примерную программу: #include <iostream> using namespace std; struct t { ~t() {cout << "destroyed\n"; } }; int main() { cout << "test\n"; t(), cout << "...
2 года, 8 месяцев назад Nyashes
77
голосов
4
ответа
Я работаю в С++ (не С++/CLI) в Visual Studio 2012 . Я не понимаю, почему этот код работает, я бы ожидал, что он завершится неудачно во время компиляции, но он даже не работает во время выполнения: ...
6 лет, 3 месяца назад Dzyann
50
голосов
1
ответ
Недавно я узнал о неопределенном поведении в C, но этот конкретный код использовался на сайте в качестве примера для "запятой как оператора", и, хотя я понимаю, как y = x++ в строке 2, я не понимаю...
2 года, 6 месяцев назад momo
85
голосов
6
ответов
int c = someIntegerValue; // Some code... int i; for ( i = 0; i < 5, i < c; i++ ) { ... } Мой компилятор говорит error: expression has no effect , что звучит правильно. Итак, какое из этих дв...
6 лет, 8 месяцев назад Michael Dorgan
Чтобы , пожалуйста,
Выберите тему жалобы:

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