Apakah itu C Operator Keutamaan dan Associativity

Apakah Itu C Operator Keutamaan Dan Associativity



Operator biasanya digunakan untuk melaksanakan pelbagai operasi aritmetik dan logik dalam C. Bahasa pengaturcaraan C mengikut susunan tertentu yang dikenali sebagai keutamaan pengendali dan pergaulan untuk menentukan susunan operasi semasa pelaksanaan. Peraturan daripada keutamaan pengendali dan pergaulan membantu dalam menulis kod bebas ralat dan meningkatkan kebolehbacaan kod.

Artikel ini menyediakan tutorial komprehensif untuk membantu anda mempelajari tentang persekutuan dan keutamaan pengendali dalam C.

Keutamaan Operator dalam C

Keutamaan pengendali menerangkan urutan di mana beberapa operator dinilai semasa menilai ungkapan. Sebagai contoh, jika ungkapan mempunyai kedua-dua pengendali penambahan dan pendaraban, yang manakah harus dinilai dahulu? Jawapannya mudah, C mengikut peraturan tertentu untuk menyelesaikan kekaburan tersebut, biasanya dikenali sebagai keutamaan pengendali . Dalam C, keutamaan pengendali dikelaskan kepada 17 tahap, bermula daripada operator unary hingga operator bersyarat ternary. Kebanyakan pengendali yang digunakan seperti pengendali aritmetik, pengendali hubungan, pengendali logik dan pengendali bitwise mengikut piawaian C keutamaan pengendali protokol.







Keutamaan peraturan menentukan pengendali yang mempunyai keutamaan yang lebih tinggi daripada yang lain apabila menilai ungkapan. Beberapa jenis operator dalam bahasa pengaturcaraan C mempunyai tahap yang berbeza-beza keutamaan . Sebagai contoh, pengendali unari mempunyai keutamaan yang lebih besar daripada pengendali binari. Berikut ialah senarai operator yang diisih mengikut tertib menaik keutamaan :



Operator Maksud Operator pergaulan
()
[]
->
.
Panggilan berfungsi

Rujukan unsur tatasusunan



Pemilihan ahli tidak langsung





Pemilihan ahli secara langsung

Kiri ke kanan
!
~
+

++

&
*
saiz
(jenis)
Penafian logik

Pelengkap bitwise (1).

Tambah unary

unary tolak

Kenaikan

Penurunan

Dereference (Alamat)

Rujukan penunjuk

Mengembalikan saiz objek

Siaran taip (penukaran)

Kanan ke kiri
*
/
%
gandakan

Bahagikan

Baki

Kiri ke kanan
+
Perduaan tambah(Tambahan)

Tolak binari(tolak)

Kiri ke kanan
<<
>>
Syif kiri

Anjakan kanan

Kiri ke kanan
<
<=
>
>=
Kurang daripada

Kurang daripada atau sama

Lebih besar daripada

Lebih besar daripada atau sama

Kiri ke kanan
==
!=
Sama dengan

Tidak sama dengan

Kiri ke kanan
& Bitwise DAN Kiri ke kanan
^ Eksklusif bitwise ATAU Kiri ke kanan
| Bitwise ATAU Kiri ke kanan
&& Logik DAN Kiri ke kanan
|| Logik ATAU Kiri ke kanan
?: Operator Bersyarat Kanan ke kiri
=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=
Tugasan mudah

Tetapkan produk

Berikan quotient

Tetapkan baki

Berikan jumlah

Tetapkan perbezaan

Berikan bitwise DAN

Berikan XOR bitwise

Tetapkan bitwise ATAU

Tetapkan syif kiri

Tetapkan syif kanan

Kanan ke kiri
, Pemisah ungkapan Kiri ke kanan

Peraturan ini membimbing pengkompil tentang cara menilai ungkapan dengan berbilang pengendali dalam ungkapan yang sama. Operator pendaraban, misalnya, mempunyai keutamaan yang lebih besar daripada operator penambahan dalam persamaan A + B * C, selaras dengan keutamaan peraturan. Oleh itu, pengkompil akan menilai terlebih dahulu ungkapan B * C sebelum menambah A pada hasilnya.

Mari kita lihat contoh keutamaan pengendali melalui kod.

#include

int utama ( ) {

int a = 43 , b = sebelas , c = 16 , d = 31 ;

int hasil = ++ a * b -- + c / -- d ;

printf ( 'a = %d \n ' , a ) ;

printf ( 'b = %d \n ' , b ) ;

printf ( 'c = %d \n ' , c ) ;

printf ( 'd = %d \n ' , d ) ;

printf ( 'hasil = %d \n ' , hasil ) ;

kembali 0 ;

}

Empat pembolehubah a, b, c, dan d, diisytiharkan dalam kod di atas, dan nilai awalnya ialah 43, 11, 16, dan 31 dengan sewajarnya. Kemudian, ia menggunakan pelbagai operator aritmetik dan tugasan kepada pembolehubah ini dalam ungkapan. Ungkapan meningkatkan nilai a dengan menggunakan operator pra-kenaikan ++a, mendarabkan hasil dengan pengendali pasca-penurunan b–, dan kemudian menambah hasil kepada pembahagi c dengan nilai pra-penurunan d. (menggunakan operator pra-penurunan –d). Hasil pembolehubah kemudiannya digunakan untuk menyimpan jumlah hasil ungkapan ini.

Pengeluaran

Pergaulan dalam C

pergaulan merujuk kepada susunan pengendali dinilai semasa ungkapan dengan keutamaan yang sama. Kiri ke kanan dan kanan ke kiri pergaulan ialah dua bentuk persekutuan dalam C. Jika dua operator mempunyai yang sama keutamaan , mereka dinilai dari kiri ke kanan mengikut konsep kiri-ke-kanan pergaulan . Namun begitu, jika keutamaan yang sama diperhatikan, pengendali dinilai dari kanan ke kiri mengikut kanan ke kiri pergaulan .

Sebagai contoh, pengendali kenaikan ++ mempunyai kanan-ke-kiri pergaulan , yang bermaksud kenaikan pengendali dinilai selepas pembolehubah. Manakala logik DAN pengendali mempunyai kiri-ke-kanan pergaulan , yang bermaksud pengendali dinilai dari kiri ke kanan.

#include

int main() {

int a = 6 , b = 3 , c = 2 ;

int hasil = a * b / c;

printf( 'hasil = %d \n ' , hasil);

kembali 0 ;

}

Tiga pembolehubah a, b, dan c diisytiharkan dalam kod ini, dan ia dimulakan kepada 6, 3, dan 2 masing-masing. Kemudian, ia menggunakan operasi darab dan bahagi kepada pembolehubah ini dalam ungkapan. Pendaraban dan pembahagian disusun dari kiri ke kanan dalam C berdasarkan mereka pergaulan kerana mereka mempunyai tahap keutamaan yang sama. Ini menunjukkan bahawa operasi bahagi didahulukan, diikuti dengan operasi pendaraban apabila menilai ungkapan, a * b / c.

Pengeluaran

Kesimpulan

Keutamaan pengendali dan pergaulan adalah konsep penting dalam pengaturcaraan C yang membantu menentukan susunan pelaksanaan ungkapan. Operator dengan yang tertinggi keutamaan tahap dinilai terlebih dahulu dan pergaulan peraturan membantu menentukan susunan apabila berbilang operator dengan keutamaan yang sama digunakan. Kefahaman keutamaan pengendali dan pergaulan adalah penting apabila mereka bentuk atur cara yang kompleks, dan ia membantu menghasilkan kod yang lebih bersih dan cekap dengan ralat yang lebih sedikit.