结构的定义与基本操作

在C语言中,定义结构变量时,结构类型名前必须加struct。

可以省略结构名称,但不能省略变量名。

\\指向结构变量的指针

#include<stdio.h>

int main()
{
struct xm
{
    int Math;
    int Chinese;
    int English;
}xm1={100,100,100};
struct xm *p;
p=&xm1;
printf("%d %d %d\n",xm1.Math,xm1.Chinese,xm1.English);
printf("%d %d %d\n",(*p).Math,(*p).Chinese,(*p).English);
printf("%d %d %d\n",p->Math,p->Chinese,p->English);
return 0;
}


\\用指向结构的指针做函数参量
#include<stdio.h>
struct my
{
    int Chinese;
    int Math;
    int English;
} score= {100,100,100};
void print1(struct my grade)
{
    printf("%d %d %d\n",grade.Chinese,grade.Math,grade.English);
}
void print2(struct my *p)
{
    printf("%d %d %d\n",p->Chinese,p->Math,p->English);
}
int main()
{
    void print1(struct my grade);
    print1(score);

    void print2(struct my *p);
    print2(&score);

    return 0;
}

\\结构类型的嵌套
#include<stdio.h>
struct subject
{
    int Math;
    int Chinese;
    int English;
};
struct person
{
    char Name[10];
    long tel;
    struct subject score;
}stu1={"xm",123456,100,100,100};
int main()
{
    printf("%s\n",(&stu1)->Name);
    printf("%ld\n",stu1.tel);
    printf("%d\n",(&stu1)->score.Math);
    printf("%d\n",stu1.score.Chinese);
    printf("%d\n",stu1.score.English);
    return 0;
}

//typedef的用法
#include<stdio.h>
int main()
{
typedef struct node//node是结构体的一个名称,可有可无.
{
    int Math;
    int Chinese;
    int English;
}linknode,*sqlink;//新的结构类型
 linknode xm={100,100,100};
 sqlink p;
p=&xm;
printf("%d %d %d\n",xm.Math,xm.Chinese,xm.English);
printf("%d %d %d\n",(*p).Math,(*p).Chinese,(*p).English);
printf("%d %d %d\n",p->Math,p->Chinese,p->English);
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值