<分区>
作为一项更大任务的一部分,我试图在 C 中打印数组的长度,即数组中有多少元素。该数组是一个 double 组,我想打印一个整数,即数组中有多少个 double 。 我有这段代码:
int array_length( double array[] ) {
double length = 0;
length = sizeof(array) / sizeof(double);
printf("%G", length);
return 0;
}
我在 main 中这样调用它:
int main( void ) {
double test[] = {1.1,2.2,3.3,4.4,5.5};
array_length(test);
return 0;
}
但是这会返回错误:
error: ‘sizeof’ on array function parameter ‘array’ will return size of ‘double *’ [-Werror=sizeof-array-argument]
研究告诉我
sizeof(array) / sizeof(double);
会给我一个数组的长度,我正在尝试使用“%G”来打印这段代码返回的 double 值。
我认为“double*”表示 long double,所以我尝试将“%G”更改为“%LG”并将所有使用的“double”更改为“long double”,但这并没有解决问题。这是怎么回事?