C语言结构体变量 指针以及对结构体成员的访问
文章目录
- 结构体
- 结构体变量访问成员的方法
- 结构体指针变量访问成员的方法
结构体
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语言结构体变量 指针以及对结构体成员的访问相关推荐
- 【C 语言】结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )
文章目录 一.结构体类型定义 二.结构体类型别名 三.结构体类型变量声明 1.使用结构体类型 ( 别名 ) 声明变量 2. 定义隐式结构体时声明变量 3.定义普通结构体时声明变量 二.完整代码示例 一 ...
- 【结构体】 结构体引用、结构体数组指针、包含结构的结构体
目录 一.概念.变量的定义 初识结构体 结构体变量的定义.引用结构体类型的初始化 二.结构体的数组 认识结构体数组 初始化结构体数组 三.结构体指针 初识结构体指针 指向结构体数组的指针 结构体作为函 ...
- 指向结构体的指针和指向结构体指针的指针
例如,struct T *ptr;是指向一个结构体的指针,也可以当做一个结构体数组来用. 可以把结构体当做 int 来看,int* 类型即可以指向一个整数,也可以指向数组. struct T ** p ...
- 11(2).结构体的存储方式,结构体变量和结构体变量指针作为函数参数传递的问题,指针的优点
本人坚持更新C语言和数据结构知识,可以收藏+关注随时了解
- C语言 字符串转结构体,字符串指针转化为结构体指针!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct abc { unsigned int num; char c; }; typedef abc* pabc ...
- c语言成绩管理系统不用结构体,不用指针链表和结构体数组怎么编学生成绩管理系统啊...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include struct stu { int num;//学号 char name[10];//姓名 float cj[3];// ...
- 【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体
参考链接:Structure pointer pointing to different structure instance 注:可以查看此篇的问题和唯一的回复,那是相对正确的,不要看comment ...
- Linux结构体变量报错,C语言中的结构体
用户自己建立自己的结构体类型 1. 定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...
- 用字典存储学生成绩查询_C语言 | 用结构体变量存储学生信息
"要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人-万中无一" --包租婆这道理放在C语言学习上也一并受用.在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语 ...
最新文章
- Nginx内存池实现的了解
- 【转载】yolo数据增强和评价方法
- 「后端小伙伴来学前端了」CSS 做三角边框,必会的基础操作之一
- linux flush 保证 磁盘,linux cache介绍及控制
- VTK修炼之道39:图像平滑_各向异性滤波
- 带防夹功能的升降器原理_桌面光污染必不可少——骨伽Bunker RGB鼠标线夹
- 第十五期:详解Java集合框架,让你全面掌握!
- django使用用户名或手机号码登录
- Unity3D笔记 愤怒的小鸟五 小鸟动画+Unity3D如何设置断点调式
- Python抓取2500份招聘需求,数据显示未来最吃香的岗位是这个
- [前端随笔][Javascript][物理引擎] 给元素添加简单的物理属性
- XMLHttpRequest.responseType
- Quartus II 13.0安装和破解教程
- wps页眉怎么设置不同页码_wps页眉的页码和页脚的页码不同怎么设置?
- 春季高考计算机专业知识归纳,春季高考计算机试题总结分析
- CSDN:2021博客之星年度总评选大赛投票
- 超阅科技001:冰火九重天
- 如何开发微信第三方小程序组件
- Chrome 浏览器如何截取整个页面
- 欲取代Android的Firefox OS 的意外复兴