Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Keutamaan Operator dan Pergaulan Mempengaruhi Susunan Aliran Output C?
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"
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"
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!