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* 也一样,而且貌似不一定要是静态变量。
一下代码就可以的:
#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