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