Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengubah Suai Parameter Fungsi dan Mencerminkan Perubahan dalam Pemanggil dalam C?
Dalam C , parameter yang dihantar kepada fungsi biasanya disalin mengikut nilai. Ini bermakna bahawa sebarang pengubahsuaian yang dibuat pada parameter dalam fungsi tidak memberi kesan kepada nilai asal dalam pemanggil.
Dalam kod yang diberikan, fungsi trans ditakrifkan sebagai:
void trans(double x,double y,double theta,double m,double n) { m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y; }
Jika anda memanggil trans dari fail yang sama seperti:
trans(center_x,center_y,angle,xc,yc);
nilai xc dan yc tidak akan menjadi diubah suai dalam fungsi. Untuk mencapai matlamat ini, anda mempunyai dua pilihan:
Gunakan Rujukan dalam C :
Tambah ampersand (&) sebelum setiap parameter m dan n dalam definisi fungsi:
void trans(double x, double y, double theta, double& m, double& n)
Dalam pemanggil, lulus pembolehubah tanpa ampersand:
trans(center_x, center_y, angle, xc, yc);
Gunakan Penunjuk dalam C:
Tukar definisi fungsi untuk diterima petunjuk:
void trans(double x, double y, double theta, double* m, double* n)
Dalam pemanggil, hantar alamat pembolehubah:
trans(center_x, center_y, angle, &xc, &yc);
Oleh menggunakan mana-mana kaedah, nilai xc dan yc akan diubah suai dalam fungsi trans, kerana ia kini dihantar melalui rujukan atau penuding. Ini membolehkan fungsi mengubah suai terus pembolehubah asal dalam pemanggil.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Parameter Fungsi dan Mencerminkan Perubahan dalam Pemanggil dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!