sizeof(array) / sizeof(array[0])
。sizeof(pointer_type)/sizeof(array[0])
(在32位系统上使用char*s时将返回4)。您可以使用a)保持#define(或const)常量,或b)保持变量。你的意思是数组本身有多长,还是里面有多少个客户ID?
因为回答第一个问题很容易:5(或者如果您不想硬编码,可以使用Ben Stott的答案)。
但是另一个问题的答案无法自动确定。假设您已经分配了一个长度为5的数组,但最初其中没有任何客户ID,并且将一个一个地放入其中,您的问题是:“我放了多少个客户ID到数组中?”
C语言无法告诉您这一点。您需要保留一个单独的变量 int numCustIds
(例如)。每次将客户ID放入数组时,都要增加该变量。然后您就可以知道已经放入了多少个。
我不确定我完全明白你的意思。
但是要获取已初始化数组的长度,
使用 strlen(string) 不行吗?
\0
呢? - Charles
sizeof(pointer) / sizeof(array[0])
。 - sam hocevar