Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melewati Tatasusunan dengan Rujukan dengan Betul dalam C?

Bagaimana untuk Melewati Tatasusunan dengan Rujukan dengan Betul dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-26 22:14:10
asal
765 orang telah melayarinya

How to Correctly Pass Arrays by Reference in C  ?

Melalui Tatasusunan melalui Rujukan dalam C

Dalam C , menghantar tatasusunan sebagai argumen fungsi melalui rujukan lazimnya diterima untuk memastikan sebarang pengubahsuaian yang dibuat kepada tatasusunan dalam fungsi ditunjukkan dalam kod panggilan. Walau bagaimanapun, ralat pengkompil baru-baru ini telah menimbulkan keraguan tentang amalan ini.

Mengapa "void foo(double& bar)" tidak dibenarkan?

Sintaks "void foo( double& bar)" cuba menghantar rujukan tatasusunan berganda kepada fungsi foo. Walau bagaimanapun, C tidak menyokong pendekatan ini. Tatasusunan terutamanya diluluskan melalui rujukan, bukan oleh elemen individu itu sendiri.

Cara yang Betul untuk Melepasi Tatasusunan melalui Rujukan

Untuk menghantar tatasusunan dengan rujukan dengan betul, gunakan sintaks berikut:

void foo(double (&bar)[10]);
Salin selepas log masuk

Dalam contoh ini, "bar" mewakili tatasusunan beregu dengan 10 elemen yang dilalui rujukan. Ini memastikan bahawa sebarang perubahan yang dibuat pada "bar" dalam foo juga akan berlaku dalam kod panggilan.

Penyelesaian Alternatif

Melalui tatasusunan melalui rujukan selalunya diutamakan untuk dielakkan isu penyalinan dan prestasi yang tidak perlu. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tatasusunan perlu saiz tetap apabila diluluskan dengan rujukan. Jika anda memerlukan tatasusunan saiz arbitrari, pertimbangkan alternatif berikut:

  • std::vector: Gunakan vektor untuk menyimpan elemen dalam tatasusunan fleksibel. Ini membolehkan saiz semula dinamik dan menjadikan kod kurang terdedah kepada ralat.
  • std::array (C 11 dan kemudian): Sama seperti vektor, std::array menyediakan tetap- susunan saiz. Walau bagaimanapun, ia menawarkan ciri tambahan seperti akses memori terus dan boleh disalin dengan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Melewati Tatasusunan dengan Rujukan dengan Betul dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan