C语言学习7(结构体)

  

文章目录

      • 一、结构体类型的声明
        • (1)结构的基础知识
        • (2)结构的声明
        • (3)结构的类型:结构的成员可以是标量、数组、指针,甚至是其他结构体。
      • 二、结构体初始化
      • 三、结构体成员访问
      • 四、结构体传参

一、结构体类型的声明

(1)结构的基础知识

  结构的基础知识:结构是一 些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

(2)结构的声明

#include 
//struct结构体关键字 Stu--结构体标签  struct Stu--结构体类型
typedef struct Stu
{
    //成员变量
    char name[20];
    short age;
    char tele[12];
    char sex[5];
}Stu;//三个全局变量的结构体变量
int main()
{

    struct Stu s1;//s局部变量
    Stu s2;
    return 0;

}

(3)结构的类型:结构的成员可以是标量、数组、指针,甚至是其他结构体。

二、结构体初始化

#include 
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 bit\n";
    struct T t ={ "hehe", {10, 'w', "hello world", 3.14}, arr};
    printf( "%s\n", t.ch);//hehe
    printf("%s\n", t.s.arr);//he1lo world
    printf("%1f\n", t.s.d);//3.14
    printf("%s\n",t.pc);//ne1lo bit
    return 0;
}

三、结构体成员访问

  结构体变量访问成员 结构变量的成员是通过点操作符(. )访问的。点操作符接受两个操作数

四、结构体传参

#include 

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("sge: %d\n",tmp.age);
    printf("tele: %s\n",tmp.tele);
    printf("sex: %s\n",tmp.sex);
}
void Print2(Stu* ps)
{
    printf("name: %s\n",ps->name);
    printf("age: %d\n",ps->age);
    printf("tele: %s\n",ps->tele);
    printf("sex: %s\n",ps->sex);
}
int main()
{

    Stu s={"李四",40,"1244235","男"};
    Print1(s);
    Print2(&s);
    return 0;
}

  结构体传参的时候,要传结构体的地址。

你可能感兴趣的:(C语言,c语言,学习)