Вопрос:

увеличение и уменьшение переменной в printf

c

1777 просмотра

1 ответ

1974 Репутация автора

Я написал простую программу, где int a = 10ожидалось, что O / P10 9 9

 printf("a++:%d \t a:%d \t --a: %d \n", a++, a, --a); 

но O / P, который получается 9 10 10

Я написал другой printf как printf(" a:%d \t --a: %d \n", a, --a);

O / P, который я получил, это 9 9

Кто-нибудь может объяснить мне об этом?

Автор: Manu Источник Размещён: 16.04.2013 09:31

Ответы (1)


3 плюса

335694 Репутация автора

Решение

Вы испытываете неопределенное поведение , имея несколько выражений с побочными эффектами, без точек последовательности между ними .

Нет никакой гарантии, что аргументы функции порядка будут оценены, поэтому здесь нельзя «ожидать» чего-либо (если вы не написали компилятор).

Автор: unwind Размещён: 16.04.2013 09:34
Вопросы из категории :
32x32