Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > if и запятая внутри


Автор: gAlexKo 16.5.2019, 16:48
Код

int i=0;
if(i = -4, i)
 printf("1");
else
 printf("2");
 //напечатает 1

 if(i = 0, i)
 printf("1");
else
 printf("2");
 //напечатает 2


Почему так? Встретил подобное в одном старом коде и хочу понять как это работает

Автор: Romikgy 16.5.2019, 17:20
Цитата(gAlexKo @  16.5.2019,  15:48 Найти цитируемый пост)
if(i = -4, i)

Код

i = -4;
if( i)

Автор: gAlexKo 17.5.2019, 11:00
Цитата(Romikgy @ 16.5.2019,  17:20)
Цитата(gAlexKo @  16.5.2019,  15:48 Найти цитируемый пост)
 if(i = -4, i)

Код

i = -4;
if( i)


разве if(-4) равно true? Почему срабатывает printf("1")  на -4?


Автор: Romikgy 17.5.2019, 11:19
Цитата(gAlexKo @  17.5.2019,  10:00 Найти цитируемый пост)
 if(-4)

не равно нулю ! 

Код

if (x)

эквивалентно 
Код

if (x!=0)

Автор: gAlexKo 17.5.2019, 13:34
Цитата(Romikgy @ 17.5.2019,  11:19)
Цитата(gAlexKo @  17.5.2019,  10:00 Найти цитируемый пост)
 if(-4)

не равно нулю ! 

Код

if (x)

эквивалентно 
Код

if (x!=0)

Век живи... ;-)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)