C代码中的结构和指针
数据变量前面的int函数中的星号“C代码中的结构和指针,c,pointers,C,Pointers,数据变量前面的int函数中的星号“*”是什么?将struct weather类型的指针放在括号中的目的是什么?为什么在下雨之前 “-->”符号?它在该代码中是如何工作的?提前谢谢你 typedef struct { int rain; double temp; double wind; } weather; int rainTot(weather* data) { int i, total = 0; for (i = 0; i < 12; i++)
*
”是什么?将struct weather类型的指针放在括号中的目的是什么?为什么在下雨之前
“-->
”符号?它在该代码中是如何工作的?提前谢谢你
typedef struct
{
int rain;
double temp;
double wind;
} weather;
int rainTot(weather* data)
{
int i, total = 0;
for (i = 0; i < 12; i++)
{
total += (data + i)->rain;
}
return total;
}
星号
*
表示此变量是指针
参数中的指针通常有两个原因:
1.您需要在子函数中修改参数
2.参数太多,所以将参数的地址(指针)转移到函数以简化。请从一本关于C编程的好教材开始。这些都是可以通过阅读任何好的教科书来回答的基本问题。没有任何迹象表明这是
-->
。它是->
。请纠正那个打字错误。
int main()
{
setvbuf(stdout, NULL, _IONBF, 0);
int i = 0;
weather *values = (weather*)malloc(12 * sizeof(weather));
FILE *data;
data = fopen("astana.txt", "r");
if (data == NULL)
{
printf("Problem opening files.");
return 1;
}
do
{
fscanf(data, "%i %lf %lf", &(values + i)->rain, &(values + i)->temp, &(values + i)->wind);
i++;
}
while (!feof(data));
printf("The total rainfall for one year is: %i\n", rainTot(values));
printf("The lowest average temperature is: %g\n", tempAvgMin(values));
printf("The average of wind speed for one year is %.2g\n\n", windAvg(values));
print(values);
free(values);
fclose(data);
return 0;
}