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个元素