0
点赞
收藏
分享

微信扫一扫

C语言复习(结构体)

1.结构体
结构体是一些值的集合,这些值称为成员变量,结构体的每个值可以是不同类型的变量。
结构体变量的成员可以是标量,数组,指针,甚至是其他结构体。
结构体的声明:

//描述一个学生的一些数据
//姓名、年龄、电话、性别
//struct--结构体关键字 Stu--结构体标签  struct Stu--结构体类型
struct Stu
{
    char name[20];
    short age;
    char tele[12];
    char sex[5];
}s1, s2, s3;//s1 s2 s3是三个结构体全局变量

int main()
{
    struct Stu s;//s是结构体局部变量 
    struct Stu s4 = {"张三", 20, "11111111111", "男"};//初始化

    return 0;
}

结构体嵌套:

//嵌套结构体
struct S
{
    int a;
    char c;
    char arr[20];
    double d;
};

struct T
{
    char ch[20];
    struct S s;
    char *p;
};

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

    return 0;
}

结构体访问和传参

//结构体访问和传参
struct Stu
{
    char name[20];
    short age;
    char tele[12];
    char sex[5];
};

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

void Print2(struct Stu *p)
{
    printf("%s\n", p->name);
    printf("%d\n", p->age);
    printf("%s\n", p->tele);
    printf("%s\n", p->sex);
}

int main()
{
    struct Stu s1 = { "张三", 20, "11111111111", "男" };
    Print1(s1);
    Print2(&s1);

    return 0;
}

结构体体传参时,要传结构体的地址。因为函数传参时,参数是需要压栈的,如果传递一个结构体对象时,结构体过大,参数压栈的系统开销比较大,导致性能下降。

举报

相关推荐

C++ 复习04 结构体

结构体<C语言>

C语言——结构体

【c语言】-- 结构体

C语言结构体

C语言,结构体

0 条评论