Этот код дает результат i = 1, но почему он дает это значение, когда есть 5, а также инициализируется с 3.
int main() { int i = 0; if(i==0) { i=((5,(i=3)),i=1); printf("%d",i); } else{ printf("Hello"); } }
Оператор запятой (,) возвращает правый боковой член. Здесь возвращаемый термин - это возвращаемое значение i=1, которое равно 1. Это значение затем присваивается обратно i.
,
i=1
1
i