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

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

Почему эти конструкции используют неопределенное поведение до и после приращения?

#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
7 отв.

Являются ли закодированные логические операторы короткими законами? И порядок оценки?

Стандарт ANSI требует, чтобы логические операторы были закорочены в C или С++? Я смущен, потому что я помню книгу K & R, в которой ваш код не должен зависеть от того, что эти операции являются короткими, потому что они не могут. Может ли кто-ниб...
10 марта '09 в 3:23
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 четкого поведения?

В Бьярне Страуструпе C++ Раздел программирования 4-е издание 36.3.6 STL-подобные операции следующий код используется в качестве примера цепочки: void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.repl...
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
3 отв.

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

Каковы последствия использования утвержденного порядка C++ 17 порядка оценки (P0145) для типичного кода C++? Что это меняет в таких вещах, как i=1; f(i++, i) а также std::cout << f() << f() << f() ; или же f(g(),h(),j());
21 июля '16 в 13:21
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
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