Setelah membaca jawaban ini tentang perilaku dan urutan poin yang tidak ditentukan, saya menulis sebuah program kecil:
#include <stdio.h>
int main(void) {
int i = 5;
i = (i, ++i, 1) + 1;
printf("%d\n", i);
return 0;
}
Outputnya adalah 2
. Ya Tuhan, aku tidak melihat penurunan itu datang! Apa yang terjadi disini?
Juga, saat mengkompilasi kode di atas, saya mendapat peringatan yang mengatakan:
px.c: 5: 8: peringatan: operan kiri dari ekspresi koma tidak berpengaruh
[-Wunused-value] i = (i, ++i, 1) + 1; ^
Mengapa? Tetapi mungkin itu akan secara otomatis dijawab dengan jawaban dari pertanyaan pertama saya.
printf("2\n");