Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Keutamaan Operator Berbeza daripada Susunan Penilaian dalam Pengaturcaraan?

Bagaimanakah Keutamaan Operator Berbeza daripada Susunan Penilaian dalam Pengaturcaraan?

Susan Sarandon
Lepaskan: 2024-12-21 04:31:12
asal
987 orang telah melayarinya

How Does Operator Precedence Differ from the Order of Evaluation in Programming?

Apakah hubungan antara keutamaan pengendali dan susunan penilaian?

Bertentangan dengan pemahaman popular, keutamaan pengendali tidak menentukan sepenuhnya susunan penilaian dalam pengaturcaraan. Walaupun keutamaan mengawal susunan pengiraan nilai, penilaian operan itu sendiri kekal bebas daripada keutamaan.

Contoh:

Pertimbangkan ungkapan x < y < z. Peraturan keutamaan menentukan bahawa ia harus dihuraikan sebagai (x < y) < z. Walau bagaimanapun, mesin tindanan, sebagai contoh, mungkin menilai ungkapan seperti berikut:

push(z);
push(y);
push(x);
test_less();  // compares TOS to TOS(1), pushes result on stack
test_less();  // compares TOS to TOS(1), pushes result on stack
Salin selepas log masuk

Ini menilai z sebelum x atau y, tetapi masih menilai (x < y) dan membandingkan hasilnya kepada z, sebagai dimaksudkan.

Penilaian dan Kesan Sampingan:

Kesan sampingan, seperti menambah atau mengurangkan pembolehubah, dilaksanakan oleh utas berasingan secara konseptual. Benang ini bercantum pada titik urutan seterusnya. Pertimbangkan ungkapan a = b c;. Ia boleh dilaksanakan seperti berikut:

push(a);
push(b);
push(c+1);
side_effects_thread.queue(inc, b);
side_effects_thread.queue(inc, c);
add();
assign();
join(side_effects_thread);
Salin selepas log masuk

Di sini, a dinilai sebelum b atau c, walaupun ia adalah sasaran tugasan. Percubaan untuk menggunakan pembolehubah dalam mana-mana bahagian lain ungkapan sebelum titik jujukan seterusnya menghasilkan gelagat yang tidak ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Keutamaan Operator Berbeza daripada Susunan Penilaian dalam Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan