C sizeof char *数组

我有一个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个元素