C语言中如何以结构体变量的地址作为函数形参,以便将指向结构体变量的指针传递给它?

2024-11-23 11:45:09
推荐回答(5个)
回答1:

C语言中,所有的变量都存储在内存中,可以通过&运算符获得变量的内存地址,函数调用时,只需要把普通变量前加上&符号,就可以达到传递变量地址的目的。

例如:

定义一个结构体类型

struct Yearmonthday

    int year, month, day;
};

定义相关函数,参数类型指定为结构体类型指针

void input(struct Yearmonthday *p1) //函数形参p1是结构体指针类型
{
    printf("请输入年,月,日:");
    scanf("%d,%d,%d",&p1->year,&p1->month,&p1->day);
}

在主函数中定义一个结构体变量,调用相关函数,传递变量地址

int main()

    struct Yearmonthday ymd;
    input(&ymd); //传递变量地址,以便带回数据
    printf("date=%d/%d/%d\n", ymd.year, ymd.month, ymd.day ); //输出结果
    return 0;
}

回答2:

以指向结构体变量的指针作为形参struct 结构提名 *指针

回答3:

结构就是个类型,跟普通类型用法没有任何区别,别被吓到了

回答4:

你可以用取引用符的格式作为形参

回答5:

*p=&ymd;

这句应是
p=&ymd;