Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Pengubahsuaian Parameter Di Dalam Fungsi Mempengaruhi Fungsi Panggilan dalam C dan C?

Bagaimanakah Pengubahsuaian Parameter Di Dalam Fungsi Mempengaruhi Fungsi Panggilan dalam C dan C?

Barbara Streisand
Lepaskan: 2024-12-18 22:57:18
asal
524 orang telah melayarinya

How Do Parameter Modifications Inside a Function Affect the Calling Function in C and 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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">m=cos(theta)*x+sin(theta)*y;
n=-sin(theta)*x+cos(theta)*y;
Salin selepas log masuk
Salin selepas log masuk

}

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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">m=cos(theta)*x+sin(theta)*y;
n=-sin(theta)*x+cos(theta)*y;
Salin selepas log masuk
Salin selepas log masuk

}

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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">*m=cos(theta)*x+sin(theta)*y;
*n=-sin(theta)*x+cos(theta)*y;
Salin selepas log masuk

}

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!

sumber:php.cn
Artikel sebelumnya:Bagaimanakah XORing dengan 32 Menukar Kes dengan Cekap dalam ASCII? Artikel seterusnya:Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada senarai std::Semasa Mengulang?
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan