Вопросы с тегом 'order-of-evaluation'

На любом языке программирования существуют четко определенные правила, определяющие порядок, в котором выражения вычисляются.
14
ответов

Почему эти конструкции используют pre- и неопределенное поведение post-increment?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++); printf("%d\n", i); // 2 Should be 1, no ? volatile int u = 0; u = u++ + ++u; printf("%d\n", u); // 1 u = 1...
задан 04 июня '09 в 12:17
12
ответов

Пост-инкремент и предварительный инкремент в цикле 'for' производят одинаковый вывод

Следующие для циклов производят идентичные результаты, даже если используется приращение постов и другое предварительное приращение. Вот код: for(i=0; i<5; i++) { printf("%d", i); } for(i=0; i<5; ++i) { printf("%d", i); } Я получаю...
задан 16 янв. '11 в 18:33
4
ответов

Порядок выполнения С++ в цепочке методов

Вывод этой программы: #include <iostream> class c1 { public: c1& meth1(int* ar) { std::cout << "method 1" << std::endl; *ar = 1; return *this; } void meth2(int ar) { std::cout <&...
задан 16 мая '16 в 14:00
2
ответов

Имеет ли этот код из раздела "Язык программирования С++" раздел 36.3.6 четкого поведения?

В Bjarne Stroustrup Язык программирования С++ Раздел 4-го выпуска 36.3.6 STL-подобных операций в качестве примера chaining: void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, 4, "" ).repla...
задан 27 нояб. '14 в 0:02
6
ответов

Выполнение порядка операторов в С++

Предположим, что у меня есть несколько операторов, которые я хочу выполнить в фиксированный порядок. Я хочу использовать g++ с уровнем оптимизации 2, поэтому некоторые заявления могут быть переупорядочены. Какие инструменты нужно выполнять для упоряд...
задан 13 июня '16 в 12:47
7
ответов

Каковы правила для порядка оценки в Java?

Я читаю текст Java и получаю следующий код: int[] a = {4,4}; int b = 1; a[b] = b = 0; В тексте автор не дал ясного объяснения, а эффект последней строки: a[1] = 0; Я не уверен, что понимаю: как прошла оценка?
задан 23 июля '11 в 16:11
13
ответов

Почему $a + ++ $a == 2?

Если я попробую это: $a = 0; echo $a + ++$a, PHP_EOL; echo $a; Я получаю этот вывод: 2 1 Демо: http://codepad.org/ncVuJtJu Почему это? Я ожидаю получить это как результат: 1 1 Мое понимание: $a = 0; // a === 0 ...
задан 14 марта '12 в 23:31
1
ответ

Порядок выполнения настроек параметров в Java?

Учитывая следующий вызов функции в C: fooFunc( barFunc(), bazFunc() ); Порядок выполнения barFunc и BazFunc не указан, поэтому barFunc() может быть вызван до bazFunc() или bazFunc() до barFunc() в C. Указывает ли Java порядок выполнения выраже...
задан 04 февр. '10 в 20:16
6
ответов

Компиляторы и порядок аргументов оценки в С++

Хорошо, я знаю, что стандарт диктует, что реализация С++ может выбирать, в каком порядке оцениваются аргументы функции, но есть ли какие-либо реализации, которые фактически "используют" это в сценарии, где это фактически повлияет программа? Классиче...
задан 07 марта '09 в 11:41
15
ответов

a = (a ++) * (a ++) дает странные результаты в Java

Я изучаю экзамен OCPJP, и поэтому я должен понимать каждую маленькую странную деталь Java. Это включает в себя порядок, в котором операторы pre и post-increment применяются к переменным. Следующий код дает мне странные результаты: int a = 3; a = (a...
задан 07 нояб. '11 в 19:00
2
ответов

Каковы гарантии порядка оценки, введенные С++ 17?

Каковы последствия проголосовавших в С++ 17 гарантий порядка оценки (P0145R3) на типичном С++-коде? (изменить: обновила ссылку на последнюю версию, r3) Что изменилось в таких вещах, как i=1; f(i++, i) и std::cout << f() << f() <&l...
задан 21 июля '16 в 13:21
4
ответов

Случайный порядок чисел в С++ с использованием <random>

У меня есть следующий код, который я написал для проверки части более крупной программы: #include <fstream> #include <random> #include <iostream> using namespace std ; int main() { mt19937_64 Generator(12187) ; mt19937_64 Gene...
задан 28 янв. '16 в 14:21
6
ответов

Приоритет оператора и порядок оценки

Термины "приоритет оператора" и "порядок оценки" очень часто используются в программировании и чрезвычайно важны для программиста. И, насколько я понимаю, эти две концепции тесно связаны; нельзя обойтись без другого, когда речь идет о выражениях. Во...
задан 29 марта '11 в 16:16
6
ответов

Является ли значение x * f (x) неуказанным, если f изменяет x?

Я посмотрел на кучу вопросов о точках последовательности и не смог выяснить, гарантирован ли порядок оценки для x*f(x), если f изменяет x, и это отличается для f(x)*x. Рассмотрим этот код: #include <iostream> int fx(int &x) { x = x + ...
задан 10 сент. '15 в 17:22
2
ответов

Выполняются ли вызовы функций в списке инициализатора конструктора?

Рассмотрим: int f () { static int i = 0; return i++; } struct Test { int a, b; Test () : a(f()), b(f()) {} }; Test t; Я знаю, что a инициализируется до b из-за порядка их объявления в struct. Я также знаю, что два вызова f в g...
задан 18 апр. '17 в 21:39