C++问题:如果double d = f()[10];合法,那么对于f()的返回类型我们能做什么推断?

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:07:24
如题所述,这个问题是《Accelerated C++》第四章的一个习题(4-8)。
望高手指教。
恩,double* 也一样,而且貌似不一定要是静态变量。
一下代码就可以的:
#include <stdio.h>
#include <stdlib.h>
//double *a;

double* f()
{
int i;
double *a;

a = (double *)malloc(12*sizeof(double));
for(i=0; i<12; i++)
{
*(a+i) = (double)i;
}

return a;
}

int main()
{
double d = f()[9];
printf("d = %f\n",d);

return 0;
}

double后跟的数据类型为 高精度浮点数 由此可见d是一个数字 而后面的明显是数组元素 即该数组的第11个元素 所以f()应该是个能返回数组名字的函数 而一般数组名都为字符型 所以返回类型是字符型

double*&

或许这个更好一点,当然返回的得是静态的量。

只能确定返回类型的描述中肯定有double字样.

返回的是一个DOUBLE类型数组的引用吧

float或double