Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Keutamaan Operator dan Pergaulan Mempengaruhi Susunan Aliran Output C?

Bagaimanakah Keutamaan Operator dan Pergaulan Mempengaruhi Susunan Aliran Output C?

Susan Sarandon
Lepaskan: 2024-12-28 15:30:32
asal
141 orang telah melayarinya

How Does Operator Precedence and Associativity Affect C   Output Stream Ordering?

Keutamaan Operator dan Asosiasi dalam Aliran Output

Dalam C , gelagat pengendali aliran output (<<) boleh berlawanan dengan intuitif apabila berbilang hujah disediakan. Walaupun nampaknya hujah diproses dari kiri ke kanan, itu tidak selalu berlaku.

Seperti yang digambarkan dalam coretan kod di bawah, susunan output boleh berbeza bergantung pada peletakan << operator dan bilangan hujah yang disediakan.

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue() << myQueue.dequeue(); // prints "ba"
Salin selepas log masuk

Dalam kes ini, yang pertama << operator berada di luar kurungan, jadi panggilan dequeue pertama dinilai terlebih dahulu. Keputusan ini kemudiannya digunakan sebagai hujah untuk << pengendali.

Namun, jika << pengendali diletakkan dalam kurungan, susunan operasi berubah.

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << (myQueue.dequeue() << myQueue.dequeue()); // prints "ab"
Salin selepas log masuk

Di sini, kurungan mengumpulkan << operator dengan panggilan dequeue pertama, menyebabkan << untuk menilai keputusan dequeue. Keputusan ini kemudiannya digunakan sebagai hujah untuk panggilan dequeue kedua, diikuti oleh << operator.

Tingkah laku ini disebabkan oleh fakta bahawa << operator tidak mempunyai titik urutan, bermakna pengkompil dibenarkan untuk mengoptimumkan susunan penilaian hujahnya. Untuk memastikan output yang konsisten, adalah disyorkan untuk menggunakan kurungan untuk menghimpunkan hujah yang sedang dicetak secara eksplisit.

Atas ialah kandungan terperinci Bagaimanakah Keutamaan Operator dan Pergaulan Mempengaruhi Susunan Aliran Output C?. 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