c语言--结构体

结构体

结构:是一些值的集合,这些值称为成员变量,可以是不同数据类型的变量。

关键字:struct

结构体的声明:

struct tag
{
    member-list;
}variable-list;

 

例:描述一个学生


  #define _CRT_SECURE_NO_WARNINGS 1
  #include <stdio.h>


struct
Stu { //struct:结构体关键字 Stu:结构体标签 struct Stu 结构体类型 char name[5]; int age; char tele[20]; char sex[5]; }; //}s1,s2,s3;//三个全局结构体变量。尽量少的使用全局变量 int main() { struct Stu s1; return 0; }
typedef struct Stu
{
    //struct:结构体关键字 Stu:结构体标签 struct Stu 结构体类型
    char name[5];
    int age;
    char tele[20];
    char sex[5];
}Stu;
//}s1,s2,s3;//三个全局结构体变量。尽量少的使用全局变量
int main()
{
    struct Stu s1;
    Stu s2;
    return 0;
}

typedef:可以将结构体的类型进行修改

第一个下面的s1,s2,s3是成员变量,第二个下面的Stu是类型

结构体变量的定义和初始化

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>



struct T
{
    char name[20];
    int age;
};

struct Stu
{
    char name[20];
    int age;
    char tele[20];
    char sex[5];
    struct T t;
};


int main()
{
    struct Stu s = { "阿跃",20,"19188888888","",{"李华",18} };
    printf("%s\n", s.name);
    printf("%d\n", s.age);
    printf("%s\n", s.tele);
    printf("%s\n", s.sex);
    printf("%s\n", s.t.name);
    printf("%d\n", s.t.age);
   return 0; }

结构体成员的类型:可以是标量,数组,指针,甚至是其它结构体

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

结构体传参:

例:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
struct Stu
{
    char name[20];
    int age;
};

void Pine(struct Stu p)
{
    printf("%s\n", p.name);
    printf("%d\n", p.age);
}

void Pine2(struct Stu* p)
{
    printf("%s\n", p->name);
    printf("%d\n", p->age);
}
int main()
{
    struct Stu s = { "阿跃",20 };
    Pine(s);
    Pine2(&s);
    return 0;
}

无论是从时间上还是存储上,传址都比传值好。因为形参是实参的一份临时拷贝。

 

posted @ 2023-10-10 17:18  小菜阿跃  阅读(67)  评论(0)    收藏  举报