19.结构的基本操作

复制代码
#include <stdio.h>  //fopen函数的包
#include <stdlib.h> //exit()函数的包
#include <unistd.h>
//定义一个结构- 把struct Person当做一种数据类型
struct Person{
   char *name;
   int age;
   int high;
};

int  main()
{
  
//结构的实例化,声明结构变量,特别像java的对象实例化
struct Person gaocun = {
  .name = "gaocun888",
  .age = 23,
  .high = 175
};

//操作成员变量,变量名称.属性名称
printf("%s\n", gaocun.name);

gaocun.name = "大王";

printf("%s\n", gaocun.name);

//创建一个结构数组
struct Person per_arr[6] = {
gaocun,
{
  .name = "金蝉子",
  .age = 23,
  .high = 175
},
{
  .name = "齐天大声",
  .age = 22,
  .high = 185
},
{
  .name = "猪八戒",
  .age = 25,
  .high = 160
},
{
  .name = "沙悟净",
  .age = 35,
  .high = 170
},
{
  .name = "白骨真君",
  .age = 1000,
  .high = 190
}
};

for (int i = 0; i < 6; ++i)
{
    printf("%d=====name:%s  age:%d   high:%d\n", i, per_arr[i].name, per_arr[i].age, per_arr[i].high);
}

//创建一个嵌套数组
struct Student {
  int id;
  char *name;
  struct Person leader;
};

struct Student one = {
  .id = 8,
  .name = "高三八班",
  .leader = { .name = "张华", .age = 35, .high = 175}
};

printf("%d===%s===%s===%d===%d\n", one.id, one.name, one.leader.name, one.leader.age, one.leader.high );

//结构指针
//声明结构指针
struct Student *stuPt;
//初始化结构指针
stuPt = &one;
printf("%p===%zdBytes\n", stuPt, sizeof(stuPt) );
//通过指针操作成员变量
printf("name:%s\n",stuPt->name  );
printf("id:%d\n",stuPt->id  );
printf(".leader.name:%s\n",stuPt->leader.name );







return 0;
}
复制代码

 

posted @   学而不思则罔!  阅读(72)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示