Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Meluluskan Tatasusunan dengan Rujukan dengan Betul dalam C?

Bagaimanakah Saya Meluluskan Tatasusunan dengan Rujukan dengan Betul dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 01:14:10798semak imbas

How Do I Correctly Pass Arrays by Reference in C  ?

Melalui Tatasusunan melalui Rujukan dalam C

Dalam C , tatasusunan dihantar melalui rujukan secara lalai. Walau bagaimanapun, sintaks untuk berbuat demikian boleh mengelirukan bagi sesetengah pengaturcara.

Menggunakan sintaks:

void foo(double& *bar)

untuk menghantar tatasusunan melalui rujukan tidak dibenarkan dalam C . Sebaliknya, gunakan sintaks ini:

void foo(double (&bar)[10])
{
}

Ini menghalang kemungkinan ralat dengan mengehadkan saiz tatasusunan menjadi tepat 10.

Untuk menghantar tatasusunan saiz arbitrari melalui rujukan, gunakan fungsi templat yang menangkap saiz pada masa penyusunan:

template<typename T, size_t N>
void foo(T (&bar)[N])
{
    // Size of bar is N
}

Untuk kebolehbacaan dan kefungsian kod yang lebih baik, pertimbangkan untuk menggunakan std::vector atau std::array bukannya tatasusunan mentah.

Atas ialah kandungan terperinci Bagaimanakah Saya Meluluskan Tatasusunan dengan Rujukan dengan Betul dalam C?. 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