小编Isa*_*aac的帖子

c 打印数组长度

作为更大任务的一部分,我试图在 C 中打印数组的长度,即数组中有多少个元素。该数组是一个双精度数组,我想打印一个整数,它是数组中有多少双精度。我有这个代码:

int array_length( double array[] ) {
    double length = 0;
    length = sizeof(array) / sizeof(double);
    printf("%G", length);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我像这样在 main 中调用它:

int main( void ) {
    double test[] = {1.1,2.2,3.3,4.4,5.5};
    array_length(test);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是这会返回错误:

错误:数组函数参数“array”上的“sizeof”将返回“double *”的大小[-Werror=sizeof-array-argument]

研究告诉我

sizeof(array) / sizeof(double);
Run Code Online (Sandbox Code Playgroud)

会给我一个数组的长度,我正在尝试使用“%G”来允许我打印此代码返回的双精度值。

我相信“double*”意味着long double,所以我尝试将“%G”更改为“%LG”并将“double”的所有用法更改为“long double”,但这并没有解决问题。这里发生了什么?

c arrays

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

c ×1