博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言结构体
阅读量:4557 次
发布时间:2019-06-08

本文共 2956 字,大约阅读时间需要 9 分钟。

1 #include 
2 3 struct student_st 4 { 5 char c; 6 int score; 7 const char *name; 8 }; 9 10 static void show_student(struct student_st *stu)11 {12 printf("c = %c, score = %d, name = %s\n", stu->c, stu->score, stu->name);13 }14 15 int main(void)16 {17 // method 1: 按照成员声明的顺序初始化18 struct student_st s1 = {
'A', 91, "Alan"};19 show_student(&s1);20 21 // method 2: 指定初始化,成员顺序可以不定,Linux 内核多采用此方式22 struct student_st s2 = 23 {24 .name = "YunYun",25 .c = 'B',26 .score = 92,27 };28 show_student(&s2);29 30 // method 3: 指定初始化,成员顺序可以不定31 struct student_st s3 = 32 {33 c: 'C',34 score: 93,35 name: "Wood",36 };37 show_student(&s3);38 39 return 0;40 }

-----------------------------------------------------------------------------------------------------------------------------------------------------------

结构体数组:

  struct Student{

    char *p_name;

    char *p_address;

    int  age;

  }

 

1):   struct Student Students[100];

    Students[0]={"zhangsan","shanghai",19};

    Students[1]={.......................................};

    ...............................................................

2):  在声明结构体的时候就指定数组名和大小(大小可以不填);

  

          struct Student{

            char *p_name;

            char *p_address;

            int  age;

          }Students[100];

3):声明结构体数组就对其初始化;

struct Student{

    char *p_name;

    char *p_address;

    int  age;

  }Students[100]={

{"zhangsan","shanghai",20},{"lisi","beijing",20},{"lisa","nanjing",21}..................................};

------------------------------------------------------------------------------------------------------------------------------------------------------------

对于结构体变量的定义

1):

struct Student{

    char *p_name;

    char *p_address;

    int  age;

  }student1,student2;

2):

struct Student{

    char *p_name;

    char *p_address;

    int  age;

  };

struct Student student1={"linda","上海",20};

struct student student2;

student2=student1;    //相同结构体的变量可以直接复制

--------------------------------------------------------------------------------------------------------------------------------------------------------------

指向结构体变量的指针

struct strudent S1;

struct strudent *p;

p=&S1;

(*p)  就是相当于S1;

假如S1.name="linda";

则:   (*p).name="linda";

或    p->name="linda";

 

C语言为了简便:(*p).name  可以简化为 p->name;  ->  为指向运算符。

----------------------------------------------------------------------------------------------------------------------------------------------------------

指向结构体数组的指针

  

struct Student{

    char *p_name;

    char *p_address;

    int  age;

  };

 

struct Student Students[3]={

{....},{....},{....}};

 

  struct Strudent *p_student;    //定义指针

  p_student=Students ;     //把结构体变量数组名赋予该指针(数组名本身就是指针);

 

for(;p_student<Students+3;p_student++){

  printf("name=%s address=%s age=%d ",p_name->name,p_name->address,p_age->age);

}

转载于:https://www.cnblogs.com/coversky/p/6519759.html

你可能感兴趣的文章
人物记忆
查看>>
小白安装openvas总结-原创20181213
查看>>
dbscan
查看>>
Android和ios蓝牙连接的区别
查看>>
idea工程编码指定UTF-8
查看>>
进程通信之二 管道技术第二篇 匿名管道
查看>>
ppt转换为html格式 抄的别人的 但是改成了web版 比较简陋
查看>>
CPU高的排查
查看>>
3Sum
查看>>
第二阶段冲刺 第三天
查看>>
NOIP2018 - 一些板子
查看>>
tomcat 调优
查看>>
操作系统进程调度算法
查看>>
/usr/bin/python^M: bad interpreter: No such file or directory
查看>>
linux学习1(10.28)
查看>>
contentType类型
查看>>
[USACO 2011 Dec Gold] Threatening Letter【后缀】
查看>>
Oracle查看表空间容量
查看>>
模板方法模式——求程序运行时间
查看>>
sql server 用户'sa'登录失败(错误18456)
查看>>