我有一个char*
数组,如下所示:
char *tbl[] = { "1", "2", "3" };
如何使用sizeof
运算符来获取数组的元素数量,这里是3?
以下确实有效,但这是正确的吗?
int n = sizeof(tbl) / sizeof(tbl[0])
答案 0 :(得分:35)
是,
size_t n = sizeof(tbl) / sizeof(tbl[0])
是最常见的方法。
请注意,使用int
表示数组大小不是最佳选择。
答案 1 :(得分:14)
较短且可以说更清洁的版本看起来像
sizeof tbl / sizeof *tbl
:)
答案 2 :(得分:2)
是的,它将为您提供数组tb1中的元素数量。
int n = sizeof(tbl) / sizeof(tbl[0])
解读:
sizeof(tb1)将给出整个数组的大小,即tb1 = 3个字节
sizeof(tb1 [0])给出字符的大小,因为tb1 [0]给出一个字符值(地址tb1 + 0处的值)= 1字节
这两个分区将为您提供 3个元素