C语言结构体中指针指向数组,指向结构体类型数组的指针的使用
指向结构体类型数组的指针的使用
定义一个结构体类型数组,其数组名是数组的首地址,下面是关于指向结构体类型数组的指针的使用具体介绍,欢迎阅读!
定义结构体类型的指针,既可以指向数组的元素,也可以指向数组,在使用时要加以区分。
[例7-3] 在例7 - 2中定义了结构体类型,根据此类型再定义结构体数组及指向结构体类型的指针。
struct data
{
intday,month,year;
};
struct stu/*定义结构体*/
{
char name[20];
long num;
struct data birthday;/嵌*套的结构体类型成员*/
};
struct stustudent[4],*p;定/*义结构体数组及指向结构体类型的指针*/
作p=student,此时指针p就指向了结构体数组student。
p是指向一维结构体数组的指针,对数组元素的引用可采用三种方法。
1)地址法
student+i和p+i均表示数组第i个元素的地址,数组元素各成员的引用形式为:
(student+i)->name、(student+i)->num和(p+i)->name、(p+i)->num等。student+i和p+i
与&student[i]意义相同。
2)指针法
若p指向数组的某一个元素,则p++就指向其后续元素。
3)指针的数组表示法
若p=student,我们说指针p指向数组student,p[i]表示数组的第i个元素,其效果与
student[i]等同。对数组成员的.引用描述为:p[i].name、p[i].num等。
[例7-4]指向结构体数组的指针变量的使用。
structdata/*定义结构体类型*/
{
intday,month,year;
};
structstu/*定义结构体类型*/
{
char name[20];
long num;
struct data birthday;
};
main()
{inti;
structstu*p,student[4]={{"liying",1,1978,5,23},{"wangping",2,1979,3,14},
{"libo",3,1980,5,6},{"xuyan",4,1980,4,21}};
/*定义结构体数组并初始化*/
p=student;/*将数组的首地址赋值给指针p,p指向了一维数组student*/
printf("\n1----Outputname,number,year,month,day\n");
for(i=0;i<4;i++)/*采用指针法输出数组元素的各成员*/
printf("%20s%10ld%10d//%d//%d\n",(p+i)->name,(p+i)->num,
(p+i)->birthday.year,(p+i)->birthday.month,
(p+i)->birthday.day);
}
C语言结构体中指针指向数组,指向结构体类型数组的指针的使用相关推荐
- C++_结构体中const使用场景_结构体_毕业设计案例_使用结构体数组_随机数种子---C++语言工作笔记027
然后我们再看const符号,在结构体中的应用 首先我们新建一个结构体.student 然后定义一个结构体变量,并初始化 然后我们再写个方法,去打印这个结构体变量 可以看到我们用的是传值
- java long 数组初始化_java基本类型数组初始化 | 学步园
1.byte.short.int.long类型数组,数组元素默认初始化为0. byte[] i= new byte[10]; //short[] i = new short[10]; //int[] ...
- java的语法结构_Java中的语法规范语法结构
1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...
- C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例
C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...
- c语言的结构体能存放函数吗,在C语言结构体中添加成员函数
我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...
- C++阶段01笔记08【结构体(基本概念、定义与使用、数组、指针、嵌套、const使用)】
C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 8 结构体 8.1 结构体基本概念 8.2 结构体定义和使用 示例 8.3 结构体数组 示例 8.4 结构体指针 示例 8.5 ...
- file结构体中private_data指针的疑惑
转:http://www.360doc.com/content/12/0506/19/1299815_209093142.shtml hi all and barry, 最近在学习字符设备驱动,不太明 ...
- 定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出。
题目描述 定义一个结构体student,存储学生的学号.名字.性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出.结构体student的定义如下: struct student { int n ...
- 【Matlab】系统预定义变量——元胞数组与结构体
[Matlab]系统预定义变量--元胞数组与结构体 往期回顾 前言 正文 一.元胞数组 1. 元胞数组操作函数 2. 代码实例 二.结构体 1. 结构体操作函数 2. 代码实例 总结 参考文献 往期回 ...
- Go基础:指针、Map、结构体
目录 Map 按照指定顺序遍历map 元素为map类型的切片 值为切片类型的map 结构体 类型定义和类型别名的区别 struct 取结构体的地址 结构体没有构造函数,可自己实现 结构体初始化 方式一 ...
最新文章
- Liferay Portal Json Web Service 反序列化漏洞(CVE-2020-7961)
- java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现
- iOS之深入解析CFRunloop的多线程隐患
- mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询
- php laravel 优点,Laravel 特点有哪些?
- 【实战】使用Job来修改Transform
- 安装Pygame的方法
- 疯狂java讲义 如何_[java学习]《疯狂java讲义》
- 三极管开关电路_利用三极管设计开关电路
- Android OrangePi 4G IOT(五) - MTK电源管理驱动(一)
- xgboost的plot_importance绘图时出现的f0、f1、f2、f3、f4、f5等改为对应特征的字段名
- 多天线技术(MIMO)基础
- 计算机主机usb插口松,台式电脑音频接口坏了or接触不良?用这两个方法轻松解决,还不需要花什么钱...
- Java 初级软件工程师 认证考试试卷1
- dns被劫持了如何修复怎么处理、dns被劫持了原理及解决方法详细
- RocketMQ消息发送源码解析
- 去除XP桌面图标的阴影
- 怎么看台式计算机内存条,内存频率怎么看 教你怎么看内存条频率
- b、B、KB、MB、GB 的关系?
- 高阶函数:如何使用过滤器,映射和约简以获得更可维护的代码
热门文章
- python opencv检测高光点及findContours计算连通域重心
- ArangoDB安装
- uniapp - 超详细 H5 网站图片压缩功能,图像上传前进行压缩降低大小并上传到服务器完整示例源码(附带 uview 组件库 u-upload 上传组件与该图片压缩插件 “搭配组合“ 使用教程)
- python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜
- 如何在谷歌地图上标注公司地址(实例讲解)
- 景区票务管理系统如何解决旅游行业难点?
- 《惢客创业日记》2020.06.26-27(周五) 无欲则刚?还是有欲则刚?
- 解决Adobe Dreamweaver 2020在编程敲代码时又卡又慢延迟的问题(复制黏贴打字都卡)
- PAT题集2019.5.30排名变动
- vant 滚动穿透问题