C语言学习记录Day11

结构  
结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量
结构的声明
struct tag
{
    member-list;
}variable-list;
描述一个学生的数据
struct Stu//struct 结构体关键字  Stu结构体标签 struct Stu结构体类型
{
    //成员变量
    char name[20];
    short age;
    char tele[12];
    char sex[5];
}s1,s2,s3;//三个都是全局变量
typedef struct Stu
{
    //成员变量
    char name[20];
    short age;
    char tele[12];
    char sex[5];
}Stu;
int main()
{
    struct Stu s1 = { "张三",20,"1234678911","男" };//局部变量
    Stu s2 = { "旺财",30,"01234567890","保密" };//初始化
    return 0;
}

struct S
{
    int a;
    char c;
    char arr[20];
    double d;
};

struct T
{
    char ch [10];
    struct S s;
    char *pc;
};

int main()
{
    char arr[] = "hello\n";
    struct T t = { "hehe",{100,'w',"hello world",3.14},arr };
    printf("%s\n", t.ch);
    printf("%s\n", t.s.arr);
    printf("%lf\n", t.s.d);
    printf("%s\n", t.pc);
    return 0;
}

结构体传参
typedef struct Stu
{
    //成员变量
    char name[20];
    short age;
    char tele[12];
    char sex[5];
}Stu;

void Print1(Stu tmp)
{
    printf("name:%s\n", tmp.name);
    printf("age:%d\n", tmp.age);
}

void Print2(Stu* ps)
{
    printf("name:%s\n", ps->name);
}

int main()
{
    Stu s = { "李四",40,"01234567899","男" };
    Print1(s);
    Print2(&s);
}
结构体传参时,参数需要压栈的,系统开销较大,在传参时要穿结构体地址

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值