指向结构体类型数组的指针的使用

定义一个结构体类型数组,其数组名是数组的首地址,下面是关于指向结构体类型数组的指针的使用具体介绍,欢迎阅读!

定义结构体类型的指针,既可以指向数组的元素,也可以指向数组,在使用时要加以区分。

[例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语言结构体中指针指向数组,指向结构体类型数组的指针的使用相关推荐

  1. C++_结构体中const使用场景_结构体_毕业设计案例_使用结构体数组_随机数种子---C++语言工作笔记027

    然后我们再看const符号,在结构体中的应用 首先我们新建一个结构体.student 然后定义一个结构体变量,并初始化 然后我们再写个方法,去打印这个结构体变量 可以看到我们用的是传值

  2. java long 数组初始化_java基本类型数组初始化 | 学步园

    1.byte.short.int.long类型数组,数组元素默认初始化为0. byte[] i= new byte[10]; //short[] i = new short[10]; //int[] ...

  3. java的语法结构_Java中的语法规范语法结构

    1,关键字:其实就是某种语言赋予了特殊含义的单词. 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词. 2,标示符:其实就是在程序中自定义的名词.比如类名,变量名,函数名.包含 0-9. ...

  4. C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例

    C++ 基础入门 之 结构体/结构体定义和使用/结构体数组/结构体指针/ 结构体嵌套结构体/结构体做函数参数/结构体中 const 使用场景/结构体案例 目录 一.简单介绍 二.结构体定义和使用 三. ...

  5. c语言的结构体能存放函数吗,在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  6. C++阶段01笔记08【结构体(基本概念、定义与使用、数组、指针、嵌套、const使用)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 8 结构体 8.1 结构体基本概念 8.2 结构体定义和使用 示例 8.3 结构体数组 示例 8.4 结构体指针 示例 8.5 ...

  7. file结构体中private_data指针的疑惑

    转:http://www.360doc.com/content/12/0506/19/1299815_209093142.shtml hi all and barry, 最近在学习字符设备驱动,不太明 ...

  8. 定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出。

    题目描述 定义一个结构体student,存储学生的学号.名字.性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出.结构体student的定义如下: struct student { int n ...

  9. 【Matlab】系统预定义变量——元胞数组与结构体

    [Matlab]系统预定义变量--元胞数组与结构体 往期回顾 前言 正文 一.元胞数组 1. 元胞数组操作函数 2. 代码实例 二.结构体 1. 结构体操作函数 2. 代码实例 总结 参考文献 往期回 ...

  10. Go基础:指针、Map、结构体

    目录 Map 按照指定顺序遍历map 元素为map类型的切片 值为切片类型的map 结构体 类型定义和类型别名的区别 struct 取结构体的地址 结构体没有构造函数,可自己实现 结构体初始化 方式一 ...

最新文章

  1. Liferay Portal Json Web Service 反序列化漏洞(CVE-2020-7961)
  2. java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现
  3. iOS之深入解析CFRunloop的多线程隐患
  4. mysql树形结构查询_MySQL递归查询所有子节点,树形结构查询
  5. php laravel 优点,Laravel 特点有哪些?
  6. 【实战】使用Job来修改Transform
  7. 安装Pygame的方法
  8. 疯狂java讲义 如何_[java学习]《疯狂java讲义》
  9. 三极管开关电路_利用三极管设计开关电路
  10. Android OrangePi 4G IOT(五) - MTK电源管理驱动(一)
  11. xgboost的plot_importance绘图时出现的f0、f1、f2、f3、f4、f5等改为对应特征的字段名
  12. 多天线技术(MIMO)基础
  13. 计算机主机usb插口松,台式电脑音频接口坏了or接触不良?用这两个方法轻松解决,还不需要花什么钱...
  14. Java 初级软件工程师 认证考试试卷1
  15. dns被劫持了如何修复怎么处理、dns被劫持了原理及解决方法详细
  16. RocketMQ消息发送源码解析
  17. 去除XP桌面图标的阴影
  18. 怎么看台式计算机内存条,内存频率怎么看 教你怎么看内存条频率
  19. b、B、KB、MB、GB 的关系?
  20. 高阶函数:如何使用过滤器,映射和约简以获得更可维护的代码

热门文章

  1. python opencv检测高光点及findContours计算连通域重心
  2. ArangoDB安装
  3. uniapp - 超详细 H5 网站图片压缩功能,图像上传前进行压缩降低大小并上传到服务器完整示例源码(附带 uview 组件库 u-upload 上传组件与该图片压缩插件 “搭配组合“ 使用教程)
  4. python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜
  5. 如何在谷歌地图上标注公司地址(实例讲解)
  6. 景区票务管理系统如何解决旅游行业难点?
  7. 《惢客创业日记》2020.06.26-27(周五) 无欲则刚?还是有欲则刚?
  8. 解决Adobe Dreamweaver 2020在编程敲代码时又卡又慢延迟的问题(复制黏贴打字都卡)
  9. PAT题集2019.5.30排名变动
  10. vant 滚动穿透问题