Rumah  >  Artikel  >  Pertukaran (pertukaran mata wang) yang manakah syiling CSWAP disenaraikan?

Pertukaran (pertukaran mata wang) yang manakah syiling CSWAP disenaraikan?

WBOY
WBOYasal
2024-07-30 06:55:53465semak imbas

Pertukaran (pertukaran mata wang) yang manakah syiling CSWAP disenaraikan?

Masalah menggunakan fungsi SWAP sebagai parameter sebenar dalam bahasa C.

Hubungan antara parameter formal dan parameter sebenar dalam bahasa C ialah: parameter formal ialah salinan nilai parameter sebenar. Tidak kira jenis parameter, parameter formal yang dihantar ke subfungsi hanyalah nilai parameter sebenar. Oleh itu, apabila menukar nilai pembolehubah parameter formal itu sendiri, ia tidak ada kaitan dengan parameter sebenar. Dalam erti kata lain, perubahan kepada parameter formal tidak akan menjejaskan parameter sebenar.

Walau bagaimanapun, jika jenis parameter ialah jenis penunjuk, anda boleh menukar data dalam alamat parameter sebenar dengan mengubah suai data dalam alamat yang ditunjukkan oleh pembolehubah penunjuk. . bukan alamat itu sendiri.

Kod rujukan:

//Kod pertukaran salah 1

voidswap1(inta,intb)//Parameter bukan penunjuk kepada data yang akan ditukar

{

intt=a;

;

a

b= t;

}

//Kod pertukaran salah 2

voidswap2(int*a,int*b)

{

int*t=a;//Tukar pembolehubah parameter formal itu sendiri

a=b;

b=t;

}

//Kod pertukaran yang betul

voidswap(int*a,int*b)

{

intt=*a;//Tukar data secara formal alamat pembolehubah parameter, Pembolehubah penunjuk kekal tidak berubah

*a=*b;

*b=t;

}

Mengapa fungsi pertukaran bahasa C tidak boleh dilaksanakan

Poster perlu mempunyai pemahaman yang lebih mendalam daripada parameter dan nilai pulangan fungsi~

Pertama sekali Nilai pulangan fungsi mestilah hanya satu pembolehubah Pulangan(a,b) dalam fungsi swap anda mungkin tidak melepasi kompilasi~

Pada. pada masa yang sama, parameter fungsi boleh dihantar dalam tiga bentuk: alamat, nilai dan rujukan Dalam kes anda, adalah disyorkan untuk menggunakan kaedah penunjuk untuk mengubah suai secara langsung nilai a dan b dalam pertukaran. Kodnya adalah seperti berikut:

void swap(int*a, int*b)

{

int t;

t=*a;

*a=*b;

*b= t;

}

Kaedah yang dipanggil utama ialah swap(&a,&b);

Atas ialah kandungan terperinci Pertukaran (pertukaran mata wang) yang manakah syiling CSWAP disenaraikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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