Dalam bahasa C, panjang tatasusunan tidak boleh diperoleh secara langsung, tetapi terdapat kaedah berikut untuk mendapatkannya secara tidak langsung: gunakan operator sizeof untuk membahagikan saiz elemen tunggal gunakan makro #define preprocessor untuk menentukan tatasusunan panjang; gunakan aritmetik penunjuk untuk mengira panjang tatasusunan ;Gunakan fungsi perpustakaan tatasusunan (seperti saiz_tatasusunan()).
Bagaimana untuk mendapatkan panjang tatasusunan C
Dalam bahasa C, tatasusunan ialah blok memori bersebelahan di mana unsur-unsur jenis yang sama disimpan. Saiz tatasusunan ditentukan pada masa penyusunan, jadi panjangnya tidak boleh diperolehi terus daripada tatasusunan itu sendiri. Tetapi terdapat kaedah berikut untuk mendapatkan panjang tatasusunan secara tidak langsung:
1 Gunakan operator sizeof
sizeof
operator mengembalikan saiz memori yang diperlukan oleh jenis tatasusunan, dalam bait. . Untuk mendapatkan bilangan elemen tatasusunan, anda boleh menggunakan operator sizeof
pada jenis tatasusunan dan membahagikan saiz elemen individu: sizeof
运算符返回数组类型所需内存的大小,单位为字节。要获得数组的元素数量,可以将 sizeof
运算符应用于数组类型除以单个元素的大小:
<code class="c">int main() { int arr[] = {1, 2, 3, 4, 5}; int length = sizeof(arr) / sizeof(arr[0]); printf("数组长度:%d\n", length); return 0; }</code>
2. 使用 预处理器宏
预处理器宏允许您定义一个符号,该符号可以在编译时替换为一个值。您可以使用 #define
预处理器指令来定义一个宏,其中包含数组的长度:
<code class="c">#define ARRAY_LENGTH 5 int main() { int arr[] = {1, 2, 3, 4, 5}; printf("数组长度:%d\n", ARRAY_LENGTH); return 0; }</code>
3. 使用 指针运算
数组名本质上是一个指向数组第一个元素的指针。因此,您可以使用指针运算来计算数组的长度。具体来说,您可以将数组指针指向最后元素,然后减去指向第一个元素的指针,再除以元素的大小:
<code class="c">int main() { int arr[] = {1, 2, 3, 4, 5}; int *end = &arr[sizeof(arr) / sizeof(arr[0]) - 1]; int length = end - arr + 1; printf("数组长度:%d\n", length); return 0; }</code>
4. 使用 动态数组库函数
一些 C 语言库提供了动态数组库函数,允许您创建和管理动态数组。这些函数通常包含一个获取数组长度的函数,例如 array_size()
<code class="c">#include <array.h> int main() { int arr[] = {1, 2, 3, 4, 5}; int length = array_size(arr); printf("数组长度:%d\n", length); return 0; }</code>
#define
untuk mentakrifkan makro yang mengandungi panjang tatasusunan: 🎜rrreee🎜🎜3 Menggunakan aritmetik penunjuk 🎜🎜🎜Nama tatasusunan pada asasnya adalah penunjuk kepada elemen pertama. daripada tatasusunan Penunjuk kepada elemen. Oleh itu, anda boleh menggunakan aritmetik penunjuk untuk mengira panjang tatasusunan. Khususnya, anda boleh menghalakan penuding tatasusunan ke elemen terakhir, kemudian menolak penuding kepada elemen pertama, dan membahagikan dengan saiz elemen: 🎜rrreee🎜🎜4 Gunakan fungsi perpustakaan tatasusunan dinamik 🎜🎜🎜Sesetengah perpustakaan C disediakan Fungsi perpustakaan tatasusunan dinamik membolehkan anda membuat dan mengurus tatasusunan dinamik. Fungsi ini biasanya termasuk fungsi yang mendapat panjang tatasusunan, seperti fungsi array_size()
: 🎜rrreeeAtas ialah kandungan terperinci Bagaimana untuk mendapatkan panjang tatasusunan c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!