Bagaimana untuk mendapatkan panjang tatasusunan c

小老鼠
Lepaskan: 2024-05-08 17:54:20
asal
1172 orang telah melayarinya

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

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

sizeofoperator mengembalikan saiz memori yang diperlukan oleh jenis tatasusunan, dalam bait. . Untuk mendapatkan bilangan elemen tatasusunan, anda boleh menggunakan operatorsizeofpada jenis tatasusunan dan membahagikan saiz elemen individu:sizeof运算符返回数组类型所需内存的大小,单位为字节。要获得数组的元素数量,可以将sizeof运算符应用于数组类型除以单个元素的大小:

int main() { int arr[] = {1, 2, 3, 4, 5}; int length = sizeof(arr) / sizeof(arr[0]); printf("数组长度:%d\n", length); return 0; }
Salin selepas log masuk

2. 使用 预处理器宏

预处理器宏允许您定义一个符号,该符号可以在编译时替换为一个值。您可以使用#define预处理器指令来定义一个宏,其中包含数组的长度:

#define ARRAY_LENGTH 5 int main() { int arr[] = {1, 2, 3, 4, 5}; printf("数组长度:%d\n", ARRAY_LENGTH); return 0; }
Salin selepas log masuk

3. 使用 指针运算

数组名本质上是一个指向数组第一个元素的指针。因此,您可以使用指针运算来计算数组的长度。具体来说,您可以将数组指针指向最后元素,然后减去指向第一个元素的指针,再除以元素的大小:

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; }
Salin selepas log masuk

4. 使用 动态数组库函数

一些 C 语言库提供了动态数组库函数,允许您创建和管理动态数组。这些函数通常包含一个获取数组长度的函数,例如array_size()

#include  int main() { int arr[] = {1, 2, 3, 4, 5}; int length = array_size(arr); printf("数组长度:%d\n", length); return 0; }
Salin selepas log masuk
2 Menggunakan makro prapemproses Makro prapemproses membolehkan anda Mentakrifkan simbol yang boleh digantikan dengan nilai pada masa penyusunan. Anda boleh menggunakan arahan prapemproses #defineuntuk mentakrifkan makro yang mengandungi panjang tatasusunan: rrreee3 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: rrreee4 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(): rrreee

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan panjang tatasusunan 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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!