问题
I have a char*
array as follows:
char *tbl[] = { "1", "2", "3" };
How do I use the sizeof
operator to get the number of elements of the array, here 3?
The below did work, but is it correct?
int n = sizeof(tbl) / sizeof(tbl[0])
回答1:
Yes,
size_t n = sizeof(tbl) / sizeof(tbl[0])
is the most typical way to do this.
Please note that using int
for array sizes is not the best idea.
回答2:
The shorter and, arguably, cleaner version would look as
sizeof tbl / sizeof *tbl
:)
回答3:
Yes, it will give you the number of elements in the array tb1.
int n = sizeof(tbl) / sizeof(tbl[0])
Interpretation:
sizeof(tb1) will gives the size of the entire array i.e, tb1 = 3 bytes
sizeof(tb1[0]) gives the size of the character as tb1[0] gives a character value(value at address tb1+0) = 1 byte
Division of those two will give you 3 elements
来源:https://stackoverflow.com/questions/1559925/c-sizeof-char-array