C代码中的结构和指针

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++)

数据变量前面的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++)
    {
        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;
}