有没有更好的方法来计算一维数组包含多少元素?

PPJ*_*ack 3 c arrays sizeof

这是我的想法:sizeof()是一个计算变量有多大的运算符.sizeof(variable type)可以计算某种类型的大小.数组中元素的数量由下式给出sizeof(<array name>) / sizeof(variable type).

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{  
    double b[] = {1 , 2 , 3 , 4 , 5};
    printf("How many elements the array contains : %d\n" , sizeof(b) / sizeof(double));
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出为5是正确的.

我想知道是否有更有效的方法来计算它?比方说,一个C函数.

Sou*_*osh 5

您的代码是计算数组中元素数量的正确和推荐方法.只是为了健壮,你可以写它

 ( sizeof(b) / sizeof(b[0]) );   // independent of the data type of array
Run Code Online (Sandbox Code Playgroud)

然而,FWIW,请注意,这是不行的情况下指针类型变量表示数组.