мы получили if(expression) {...} например. Мы все знаем, если выражение истинно, оно будет выполнять строки в фигурных скобках. Но что такое «правда» в C? Это! = 0 значит правда, как я думаю?
if(expression) {...}
Спасибо
Вот что говорит стандарт.
§6.8.4 Операторы выбора Синтаксис selection-statement: if ( expression ) statement if ( expression ) statement else statement switch ( expression ) statement §6.8.4.1 if оператор Ограничения Управляющее выражение оператора if должно иметь скалярный тип. Семантика В обеих формах первое подсостояние выполняется, если выражение сравнивается с неравным 0. В форме else второе подсостояние выполняется, если выражение сравнивается равным 0. Если первое подстановка достигается через метку, подотчет не выполнен. else ассоциируется с лексически ближайшим предшествующим, если это разрешено синтаксис.
selection-statement:
if ( expression ) statement
if ( expression ) statement else statement
switch ( expression ) statement
if
else
Любые результаты, отличные от нуля, верны
Да, true не является нулевым в C и C ++.