Rumah >pembangunan bahagian belakang >C++ >Mengapa Perintah `cout

Mengapa Perintah `cout

Susan Sarandon
Susan Sarandonasal
2024-12-25 15:39:18578semak imbas

Why Does the Order of `cout

Perintah Penilaian Operator dalam Ungkapan Operator C

Dalam coretan kod yang diberikan:

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue() << myQueue.dequeue();

dan

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue();
cout << myQueue.dequeue();

Penyusunan penyata cetakan mungkin kelihatan tidak dijangka. Walau bagaimanapun, memahami susunan penilaian << operator menjelaskan tingkah laku ini.

The << operator tidak mempunyai perintah penilaian yang ditentukan untuk hujahnya. Ini bermakna pengkompil bebas untuk menilai mereka dalam sebarang urutan. Walau bagaimanapun, ia menjamin bahawa hujah kedua (yang di sebelah kanan <<) dinilai selepas yang pertama.

Dalam coretan kod pertama, susunan penilaian tidak penting kerana kedua-dua dequee () panggilan mendapatkan semula elemen berbeza daripada baris gilir. Walau bagaimanapun, dalam coretan kedua, susunan adalah penting.

Pengkompil boleh menilai kod dalam pelbagai susunan, termasuk:

auto tmp1 = myQueue.dequeue();
auto tmp2 = myQueue.dequeue();
cout << tmp1 << tmp2;

dan

auto tmp1 = myQueue.dequeue();
cout << tmp1 << myQueue.dequeue();

The pesanan pertama akan mengeluarkan "ab", manakala output kedua "ba". Output khusus bergantung pada susunan penilaian yang dipilih oleh pengkompil.

Tingkah laku ini menekankan kepentingan memahami susunan penilaian pengendali semasa menulis kod C, terutamanya apabila berurusan dengan pengendali yang mempunyai susunan penilaian yang tidak ditentukan atau tidak berjujukan.

Atas ialah kandungan terperinci Mengapa Perintah `cout. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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