Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pengubahsuaian Parameter Di Dalam Fungsi Mempengaruhi Fungsi Panggilan dalam C dan C?
Pengubahsuaian Parameter dalam Fungsi: Kesan pada Pemanggil
Apabila mengubah suai parameter dalam fungsi, adalah penting untuk memahami kesannya terhadap pemanggil . Dalam coretan kod yang dibentangkan:
<br>void trans(double x,double y,double theta,double m,double n)<br>{</p> <pre class="brush:php;toolbar:false">m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y;
}
memanggil fungsi dengan trans(center_x,center_y,angle,xc,yc) ini tidak mengubah suai nilai xc dan yc secara langsung. Ini berlaku kerana C melepasi parameter fungsi mengikut nilai, bermakna fungsi menerima salinan pembolehubah.
Untuk menangani perkara ini, anda mempunyai dua pilihan:
1. Dalam C :
Gunakan rujukan untuk menghantar parameter melalui rujukan, mengubah suai pembolehubah asal dalam fungsi:
<br>void trans(double x, double y, double theta, double& m, double& n)<br>{</p> <pre class="brush:php;toolbar:false">m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y;
}
2. Dalam C:
Luluskan parameter dengan menghantar alamatnya secara eksplisit menggunakan penunjuk:
<br>void trans(double x, double y, double theta, double<em> m, dua kali ganda</em> n)<br>{</p> <pre class="brush:php;toolbar:false">*m=cos(theta)*x+sin(theta)*y; *n=-sin(theta)*x+cos(theta)*y;
}
Dengan pengubahsuaian ini, panggilan trans(center_x,center_y,angle,xc,yc) akan terus dikemas kini nilai xc dan yc. Jika tingkah laku ini diingini, maka menggunakan rujukan atau petunjuk adalah perlu untuk mencapai kesan yang diingini.
Atas ialah kandungan terperinci Bagaimanakah Pengubahsuaian Parameter Di Dalam Fungsi Mempengaruhi Fungsi Panggilan dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!