簡體   English   中英

C sizeof char *數組

[英]C sizeof char* array

我有一個char*數組,如下所示:

char *tbl[] = { "1", "2", "3" };

如何使用sizeof運算符獲取數組元素的數量(此處為3)?

下面的工作,但正確嗎?

int n = sizeof(tbl) / sizeof(tbl[0]) 

是,

size_t n = sizeof(tbl) / sizeof(tbl[0])

是最典型的方法。

請注意,將int用於數組大小不是最好的主意。

較短且可以說較干凈的版本看起來像

sizeof tbl / sizeof *tbl

:)

是的,它將為您提供數組tb1中的元素數量。

int n = sizeof(tbl) / sizeof(tbl[0])

解釋:

sizeof(tb1)將給出整個數組的大小,即tb1 = 3個字節

sizeof(tb1 [0])給出字符的大小,因為tb1 [0]給出字符值(地址tb1 + 0處的值)= 1字節

將這兩個部分相除會給您3個元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM