C语言:结构体变量

1. 结构体变量的引用方法

例如,若有数据定义:

struct Student{
    char name[10];
    int age;
    struct Date birthday;
}s1,s2,stu[10];

则下面对结构体变量的引用都是正确的:

s1.age=20;
scanf("%d",&s1.age);
gets(stu[0].name);
strcpy(stu[1].name,"zhangsan");
s1.birthday.year=1997;
scanf("%d",&s1.birthday.month);
s2=s1;

而下面的引用都是错误的:

s1={"Lisi",20,10,30,1997};    //结构体变量不能整体使用
s1.birthday={10,30,1997};     //birthday也是一个整体,不是基本类型
scanf("%s%d%d%d%d",&s1);      //结构体变量不能整体使用

2. 结构体变量引用举例

设有30个学生,每个人都有学号、姓名和考试成绩三项数据,从键盘输入这些数据,找出成绩最高者并输出其数据。

#include<stdio.h>
struct Student{
    char num[10];
    char name[10];
    int score;
};
int main()
{
    struct Student s[30];
    int i,k;
    for(i=0;i<30;i++){
        scanf("%s",&s[i].num);
        scanf("%s",&s[i].name);
        scanf("%d",&s[i].score);
    }
    k=0;
    for(i=1;i<30;i++)
        if(s[i].score>s[k].score)
            k=i;
    printf("%s %s %d\n",s[k].num,s[k].name,s[k].score);
    return 0;
}

3. 用指针变量操作结构体变量

与普通变量一样,结构体变量也可以通过指针变量来间接访问。

struct Student{
    char name[9];
    int score;
};
struct Student s,*p=&s;
scanf("%s",(*p).name);
(*p).score=90;

或者也可以写成:

scanf("%s",p->name);
p->score=90;

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值