结构体指针

结构体指针:指向结构体的指针。是非常普遍存在的使用方式,必须掌握!


上车:

typedef struct data   //typedef定义结构体,别名为DATA
{
int aa;
int bb;
int cc;
int dd;
}DATA;

以下temp1, temp2的赋值操作都可行,temp1是指针直接指向结构体内部变量,temp2是指针转换为结构体后,再使用结构体变量访问方式。两种方式都编译过,放心使用。

此函数相当于定义一个类型为DATA *型的指针DATAStruct,指向结构体sum1的首地址,即可分解为:

DATA * DATAStruct;

DATAStruct = &sum1;

此时,DATAStruct指向了sum1结构体首地址

int DATA_init(DATA *DATAStruct)   //结构体实现,使用指针指向结构体
{
         int temp1, temp2;

         temp1 = DATAStruct->aa + DATAStruct->bb + DATAStruct->cc + DATAStruct->dd;
         temp2 = (*DATAStruct).aa + (*DATAStruct).bb + (*DATAStruct).cc - (*DATAStruct).dd;

         return temp1 + temp2;
}

int main(void)
{
         int temp1;
         DATA sum1;      //定义DATA类型的sum1变量

         sum1.aa = 10;   //初始化结构体变量
         sum1.bb = 20;
         sum1.cc = 30;
         sum1.dd = 40;

         temp1 = DATA_init(&sum1);   //调用结构体指针函数

         printf("temp1 = %d\r\n", temp1);    //打印输出temp1,输出结果为120

         return 0;

}


所有信息都在注释里,如有问题,欢迎指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值