Melalui Tatasusunan ke Fungsi: Enigma Sejarah
Walaupun keupayaan kami untuk menghantar contoh kelas kompleks dengan lancar kepada fungsi, persoalan timbul: mengapa boleh Bukankah kita melakukan perkara yang sama dengan tatasusunan? Enigma sejarah ini berpunca daripada peraturan awal yang menyusun "reput menjadi penunjuk" apabila dihantar kepada fungsi.
Peraturan ini diterima pakai untuk kesederhanaannya, memastikan gelagat yang konsisten merentas parameter dan pengisytiharan fungsi yang berbeza. Sebaliknya, penyalinan tatasusunan akan memperkenalkan kerumitan dan kekaburan yang tidak perlu dalam kod.
Walau bagaimanapun, perlu diingat bahawa nilai pas-demi-tidak langsung masih boleh dilakukan:
struct A { int arr[2]; }; void func(struct A);
Dengan merangkum tatasusunan dalam struktur dan melepasi struktur sebagai parameter, kami dengan berkesan mengelakkan nilai pas-demi-langsung tatasusunan sambil mengekalkan gelagat yang diingini.
Atas ialah kandungan terperinci Mengapa Kami Tidak Boleh Menghantar Tatasusunan kepada Fungsi Secara Terus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!