首页 > 其他分享 >C语言学习 结构体

C语言学习 结构体

时间:2023-02-05 08:11:13浏览次数:40  
标签:char struct Company name 学习 person C语言 id 结构

定义一个结构体

 

struct Company {
char *name;
char *id;
char *location;
}

初始化

1   struct Company company = {.name="imooc", .id="1212121"};

怎么省略struct呢 声明的时候可以这么声明,然后就可以直接用Company 这个关键字来定义company了

1 typedef struct Company {
2     char *name;
3     char *id;
4     char *location;
5   } Company;

typeof 可以简化类型的输入

结构体内部引用另一个结构体

 1 typedef struct Company {
 2     char *name;
 3     char *id;
 4     char *location;
 5   } Company;
 6 
 7   typedef struct Person {
 8     char *name;
 9     int age;
10     char *id;
11     Company *company;
12     Company company2;
13     struct {
14       int extra;
15       char *extra_str;
16     } extra_value;
17     struct Person *partner;
18   } Person;
19 
20   struct Company company = {.name="imooc", .id="1212121"};
21   struct Person person = {.name="bennyhuo", .id="12113322222", .company=&company,
22       .company2={.name="imooc", .id="32323232"}
23   };
View Code

全部代码

 1 #include <stdio.h>
 2 #include <io_utils.h>
 3 
 4 int main() {
 5   /*
 6    * struct <结构体名> {
 7    *  <成员类型> <成员名>;
 8    *  ...
 9    * } <结构体变量>;
10    */
11 
12   typedef struct Company {
13     char *name;
14     char *id;
15     char *location;
16   } Company;
17 
18   typedef struct Person {
19     char *name;
20     int age;
21     char *id;
22     Company *company;
23     Company company2;
24     struct {
25       int extra;
26       char *extra_str;
27     } extra_value;
28     struct Person *partner;
29   } Person;
30 
31   struct Company company = {.name="imooc", .id="1212121"};
32   struct Person person = {.name="bennyhuo", .id="12113322222", .company=&company,
33       .company2={.name="imooc", .id="32323232"}
34   };
35 
36   PRINT_INT(person.age);
37   person.age = 30;
38 
39   //person.company->name
40   //person.extra_value.extra
41 
42   PRINT_HEX(&person);
43 
44   Person *person_ptr = &person;
45 
46   puts(person_ptr->name);
47 
48   PRINT_INT(sizeof(Person));
49   PRINT_INT(sizeof(person));
50 
51   struct {
52     char *name;
53     int age;
54     char *id;
55   } anonymous_person;
56 
57   Person person1 = {.name = "andy", .age = 20};
58   PRINT_INT(person1.age);
59 
60   return 0;
61 }
View Code

执行结果

 

 


标签:char,struct,Company,name,学习,person,C语言,id,结构
From: https://www.cnblogs.com/liumy/p/17092815.html

相关文章

  • 创建图的存储结构
    引入由于图的任意两个顶点之间都存在关系,自然无法采用诸如顺序存储结构这种适合一对一,物理地址连续的存储法,但可以采取邻接矩阵或邻接表作为图的存储结构。邻接矩......
  • .NET学习系列之委托
    委托(delegate)委托是一种知道如何调用方法的对象。委托类型定义了一种委托实例(delegateinstance)可以调用的方法。具体来说,它定义了方法的返回类型(returntype)和参数类型(p......
  • JavaScript学习笔记—DOM:通过属性读取样式
    读取的样式都是只读,无法修改获取元素内部的宽度和高度(包括内容区和内边距)element.clientHeightelement.clientWidth获取元素的可见框的大小(包括内容区、内边距和边框)......
  • ES6-11新特性学习笔记
    ......
  • [数据结构] 树、森林的遍历
    树的遍历树的遍历方式有先根遍历和后根遍历。在下面树的遍历中,采用的都是孩子兄弟表示法构建的树。树的先根遍历树的先根遍历步骤先根遍历就是先访问树的根节点,然后再......
  • 学习java第八天
    运算符   %=莫预算java等号是用两个等号==,不等于!=instanceof前四个必须掌握与或非重点掌握前四个ide快捷键ctrl+d复制本行到下一行package......
  • java学习day01—Markdown学习
    Markdown学习标题三级标题四级标题字体Hello,World!Hello,World!Hello,World!Hello,World!引用选择狂神说java,走向人生巅峰分割线图片超链接点击跳转到......
  • 数据结构-实现逆波兰计算器
     packagecom.stack;importjava.util.ArrayList;importjava.util.List;importjava.util.Stack;publicclassPoland{publicstaticvoidmain(String[]a......
  • java学习
    java学习快捷键1.psvm和sout(打印输出的快捷键)2.在使用浮点类型时注意浮点数是一个近似值,在处理银行业务时需要使用的是BigDecimal数学工具类3.在强制转换类型的时候......
  • 自我介绍与学习心得
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2023learning这个作业要求在哪里https://edu.cnblogs.com/campus/fzzcxy/2023learning/homework/1......