Префиксная инкрементная переменная при повторном использовании переменной в списке параметров
86 просмотра
1 ответ
У меня сегодня особенный вопрос ..
Что происходит, когда я использую приращение префикса для переменной в списке параметров функции, но затем снова использую эту переменную в списке параметров? Произойдет ли приращение префикса до того, как переменная будет оценена как часть второго параметра?
(И я полагаю, что я мог бы также спросить, а что если вместо этого использовать постфиксный инкремент?)
Example(++marker1, marker2 - marker1);
Автор: jramm
Источник
Размещён: 12.11.2019 09:14
Ответы (1)
3 плюса
Оценка аргументов функции не является последовательной, поэтому изменение переменной в одном и использование ее значения в другом дает неопределенное поведение. Это тот случай, используете ли вы преинкремент или постинкремент.
В общем, избегайте изменения переменной как части сложного выражения; особенно если его значение используется в другом месте в выражении, поскольку оно имеет тенденцию давать неопределенное значение или (в некоторых случаях) неопределенное поведение.
Автор: Mike Seymour Размещён: 08.10.2014 02:37Вопросы из категории :
- c++ What are the barriers to understanding pointers and what can be done to overcome them?
- c++ Какой самый простой способ для анализа файла INI в C ++?
- c++ Когда вы должны использовать «друг» в C ++?
- c++ Как вы очищаете переменную stringstream?
- c++ В C ++ конструктор и деструктор могут быть встроенными функциями?
- c++ Что такое виртуальный базовый класс в C ++?
- c++ В чем разница между #include <filename> и #include "filename"?
- c++ Какой самый лучший бесплатный детектор утечки памяти для программы на C / C ++ и ее подключаемых библиотек DLL?
- c++ Как преобразовать std :: string в LPCWSTR в C ++ (Unicode)
- c++ Regular cast vs. static_cast vs. dynamic_cast
- c++ Синтаксические стили C ++
- c++ Как прочитать значение из реестра Windows
- c++ Какие компиляторы C ++, если таковые имеются, выполняют оптимизацию хвостовой рекурсии?
- c++ Каковы различия между «универсальными» типами в C ++ и Java?
- c++ Как добавить отражение в приложение C ++?
- c++ Как мне вызвать :: CreateProcess в C ++ для запуска исполняемого файла Windows?
- c++ Почему порядок, в котором связаны библиотеки, иногда вызывает ошибки в GCC?
- c++ Как вы обнаруживаете / избегаете утечки памяти в вашем (неуправляемом) коде?
- c++ Как вы устанавливаете, очищаете и переключаете один бит?
- c++ Вызов python из программы c ++ для распространения