文章目录

  • 结构体
  • 结构体变量访问成员的方法
  • 结构体指针变量访问成员的方法

结构体

struct AGE
{int year;int month;int day;
};
struct STUDENT
{char name[20];  //姓名int num;  //学号struct AGE birthday;  //生日float score;  //分数
};

结构体变量访问成员的方法

int main(void)
{struct STUDENT student1; /*用struct STUDENT结构体类型定义结构体变量student1*/student1.birthday.year = 1989;student1.birthday.month = 3;student1.birthday.day = 29;student1.num = 1207041;student1.score = 100;return 0;
}

访问方式:

结构体变量.成员名

结构体指针变量访问成员的方法

int main(void)
{struct STUDENT student1; /*用struct STUDENT结构体类型定义结构体变量student1*/struct STUDENT *p = NULL;  /*定义一个指向struct STUDENT结构体类型的指针变量p*/p = &student1;  /*p指向结构体变量student1的首地址, 即第一个成员的地址*/strcpy((*p).name, "小明");  //(*p).name等价于student1.name(*p).birthday.year = 1989;(*p).birthday.month = 3;(*p).birthday.day = 29;(*p).num = 1207041;(*p).score = 100;printf("name : %s\n", (*p).name);  //(*p).name不能写成pprintf("birthday : %d-%d-%d\n", (*p).birthday.year, (*p).birthday.month, (*p).birthday.day);printf("num : %d\n", (*p).num);printf("score : %.1f\n", (*p).score);return 0;
}

我们看到,用指针引用结构体变量成员的方式是:

(*指针变量名).成员名

括号使用是因为优先级问题。

此外为了使用的方便和直观,用指针引用结构体变量成员的方式:

(*指针变量名).成员名

可以直接用:

指针变量名->成员名

来代替,它们是等价的。->是“指向结构体成员运算符”,它的优先级同结构体成员运算符“.”一样高。p->num 的含义是:指针变量 p 所指向的结构体变量中的 num 成员。p->num 最终代表的就是 num 这个成员中的内容。

int main(void)
{struct STUDENT student1; /*用struct STUDENT结构体类型定义结构体变量student1*/struct STUDENT *p = NULL;  /*定义struct STUDENT结构体类型的指针变量p*/p = &student1;  /*p指向结构体变量student1的首地址, 即第一项的地址*/strcpy(p->name, "小明");p->birthday.year = 1989;p->birthday.month = 3;p->birthday.day = 29;p->num = 1207041;p->score = 100;printf("name : %s\n", p->name);  //p->name不能写成pprintf("birthday : %d-%d-%d\n", p->birthday.year, p->birthday.month, p->birthday.day);printf("num : %d\n", p->num);printf("score : %.1f\n", p->score);return 0;
}

C语言结构体变量 指针以及对结构体成员的访问相关推荐

  1. 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )

    文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...

  2. 【结构体】 结构体引用、结构体数组指针、包含结构的结构体

    目录 一.概念.变量的定义 初识结构体 结构体变量的定义.引用结构体类型的初始化 二.结构体的数组 认识结构体数组 初始化结构体数组 三.结构体指针 初识结构体指针 指向结构体数组的指针 结构体作为函 ...

  3. 指向结构体的指针和指向结构体指针的指针

    例如,struct T *ptr;是指向一个结构体的指针,也可以当做一个结构体数组来用. 可以把结构体当做 int 来看,int* 类型即可以指向一个整数,也可以指向数组. struct T ** p ...

  4. 11(2).结构体的存储方式,结构体变量和结构体变量指针作为函数参数传递的问题,指针的优点

    本人坚持更新C语言和数据结构知识,可以收藏+关注随时了解

  5. C语言 字符串转结构体,字符串指针转化为结构体指针!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct abc { unsigned int num; char c; }; typedef abc* pabc ...

  6. c语言成绩管理系统不用结构体,不用指针链表和结构体数组怎么编学生成绩管理系统啊...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct stu { int num;//学号 char name[10];//姓名 float cj[3];// ...

  7. 【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体

    参考链接:Structure pointer pointing to different structure instance 注:可以查看此篇的问题和唯一的回复,那是相对正确的,不要看comment ...

  8. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

  9. 用字典存储学生成绩查询_C语言 | 用结构体变量存储学生信息

    "要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人-万中无一" --包租婆这道理放在C语言学习上也一并受用.在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语 ...

最新文章

  1. Nginx内存池实现的了解
  2. 【转载】yolo数据增强和评价方法
  3. 「后端小伙伴来学前端了」CSS 做三角边框,必会的基础操作之一
  4. linux flush 保证 磁盘,linux cache介绍及控制
  5. VTK修炼之道39:图像平滑_各向异性滤波
  6. 带防夹功能的升降器原理_桌面光污染必不可少——骨伽Bunker RGB鼠标线夹
  7. 第十五期:详解Java集合框架,让你全面掌握!
  8. django使用用户名或手机号码登录
  9. Unity3D笔记 愤怒的小鸟五 小鸟动画+Unity3D如何设置断点调式
  10. Python抓取2500份招聘需求,数据显示未来最吃香的岗位是这个
  11. [前端随笔][Javascript][物理引擎] 给元素添加简单的物理属性
  12. XMLHttpRequest.responseType
  13. Quartus II 13.0安装和破解教程
  14. wps页眉怎么设置不同页码_wps页眉的页码和页脚的页码不同怎么设置?
  15. 春季高考计算机专业知识归纳,春季高考计算机试题总结分析
  16. CSDN:2021博客之星年度总评选大赛投票
  17. 超阅科技001:冰火九重天
  18. 如何开发微信第三方小程序组件
  19. Chrome 浏览器如何截取整个页面
  20. 欲取代Android的Firefox OS 的意外复兴

热门文章

  1. 新手也能每天挣300,今日头条的这5个隐藏玩法,你知道吗?
  2. 使用mybatis进行四表联查
  3. 10款国外免费VoIP服务
  4. 使用Android Studio来为Cocos2dx-lua项目打包
  5. 如何查看Linux系统的状态信息?
  6. Linux学习(一)-- df/du命令
  7. 关于对技术群中群友积极参与问答的一点看法
  8. 自动化测试需要学习的知识
  9. 预编译及预处理的理解
  10. juniper SSG防火墙与飞塔防火墙配置点到点IPSEC ***