keshav desai Ответов: 2

Операторы в программировании на языке Си


#include<stdio.h>
main()
{
	int i=2;
	printf("\n%d %d",++i,++i);
	getch();

}

вот я делаю на turboC и получаю выход 4,3
пожалуйста объясните почему

Что я уже пробовал:

но по моим словам
++я так увеличил и напечатал
поэтому я думаю, что это должно быть 3,4, чтобы быть выходным

PIEBALDconsult

https://www.codeproject.com/Articles/1208666/Why-does-x-equals-plusplusx-plus-xplusplus-give-me

Afzaal Ahmad Zeeshan

Виртуальный 5. Я искал эту статью, чтобы поделиться ею.

2 Ответов

Рейтинг:
1

Patrice T

Вы находитесь в серой зоне, результирующий код-это выбор компилятора, и поэтому он непредсказуем.
Единственный совет: никогда не пишите код с шагом более 1 для одной и той же переменной в одной строке кода.
Настоящий кодекс:

#include<stdio.h>
main()
{
	int i=2;
	printf("\n%d %d",++i,++i);
	getch();
}

можно перевести на:
#include<stdio.h>
main()
{
	int i=2;
	int t1=++i;
	int t2=++i;
	printf("\n%d %d",t1,t2);
	getch();
}

или чтобы:
можно перевести на:
#include<stdio.h>
main()
{
	int i=2;
	int t1=++i;
	int t2=++i;
	printf("\n%d %d",t2,t1);
	getch();
}

Это только выбор компилятора.