结构体struct简介(下)
本文整理自:
结构指针变量也必须要先赋值后才能使用。赋值是把结构变量的首地址赋予该指针变量, 不能把结构体类型名赋予该指针变量。
如果boy是被说明为stu类型的结构变量,则: pstu=&boy是正确的,而: pstu=&stu是错误的。
通过结构体指针变量,能方便地访问结构体变量的各个成员。
(*结构指针变量).成员名 或为: 结构指针变量->;成员名
七、结构体数组指针变量
结构指针变量可以指向一个结构体数组, 这时结构体指针变量的值是整个结构体数组的首地址。 因为结构指针变量也表示指向结构体数组的一个元素,所以这时该结构指针变量的值其实是该结构体数组0号元素的首地址。设ps为指向结构数组的指针变量,则ps也指向该结构数组的0 号元素,ps+1指向1号元素,ps+i则指向i号元素。 这与普通数组的情况是一致的。
用指针变量输出结构数组。
应该注意的是, 一个结构指针变量虽然可以用来访问结构体变量或结构体数组的元素,但是,不能使它指向结构体的一个成员。 也就是说不允许取一个成员的地址来赋予它。
因此,下面的赋值是错误的。 ps=&boy[1].sex;而只能是:ps=boy;(赋予数组首地址) 或者是: ps=&boy[0];(赋予0号元素首地址)
八、结构体变量作为函数参数使用
在函数的参数中使用结构体和一般的变量没有本质的区别,其不同仅仅是在定义上.。
比如:
int ptinrect(struct point p, struct rect r)
{
return p.x >= r.pt1.x && p.x < r.pt2.x && p.y >= r.pt1.y && p.y < r.pt2.y;
}
示例8.1
计算一组学生的平均成绩和不及格人数。
本 程序中定义了函数ave,其形参为结构指针变量ps。boy 被定义为外部结构数组,因此在整个源程序中有效。在main 函数中定义说明了结构指针变量ps,并把boy的首地址赋予它,使ps指向boy 数组。然后以ps作实参调用函数ave。在函数ave 中完成计算平均成绩和统计不及格人数的工作并输出结果。由于本程序全部采用指针变量作运算和处理,故速度更快,程序效率更高。.
结构体struct简介(下)相关推荐
- linux 结构体 struct addrinfo 简介
目录 定义 相关方法 1. getaddrinfo(const char, const char, const struct addrinfo, struct addrinfo*) 2. freead ...
- Linux下网络相关结构体 struct servent
Linux下网络相关结构体 struct servent 参考书籍:<UNIX环境高级编程> 参考链接: http://www.cnblogs.com/benxintuzi/p/45898 ...
- linux sock结构体,struct socket结构体详解
在内核中为什么要有struct socket结构体呢? struct socket结构体的作用是什么? 下面这个图,我觉得可以回答以上两个问题. 由这个图可知,内核中的进程可以通过使用struct ...
- 内核中用于数据接收的结构体struct msghdr以及iovec介绍
我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...
- 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
http://blog.csdn.net/windeal3203/article/details/39320605 Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq ...
- (15)System Verilog结构体struct详解
(15)System Verilog结构体struct详解 1.1 目录 1)目录 2)FPGA简介 3)System Verilog简介 4)System Verilog结构体struct详解 5) ...
- C语言的几种结构体Struct的赋值方法
C语言的几种结构体Struct的赋值方法 1. 定义结构体类型 这里是两个结构体的基本结构. struct Init{int a;float b;double c; }I1; struct SIMPL ...
- 结构体struct的自然对齐问题(经典)
结构体struct的自然对齐问题下面的机构体 struct A { char c; int i; char cc; }; 它的sizeof()是多少呢? 如果是紧凑对齐的话,当 ...
- 谈结构体struct 初始化多出的点号“.”,数组[]初始化多出的逗号“,”
结构体struct初始化多出的点号"." 在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式,该方式是书中并没有介绍过的. 这种方式称为指定初始化(design ...
最新文章
- Linux内核模块编程系列1-极简内核模块编写
- 微软Office Online服务安装部署及wopi代码实现--------域控制服务器安装
- android sdk 封装html5,Android平台以WebView方式集成HTML5+SDK方法
- Exchange server 2007中启用pop3和IMAP4协议访问
- 神经网络佛系炼丹手册
- java类加载全过程
- java 程序找错_JAVA程序找错~
- zabbix3.0.3-源码安装
- 对instance进行二次封装
- 网站的版面设计,商业Web站点设计策略,网站CI形象设计,网页色彩的搭配
- JAVA核酸预约检测管理系统毕业设计 开题报告
- 股市预测python代码<循环神经网络>
- 手机4g网速测试用什么软件,测手机4g网速(4g手机上网速度测试)
- 如何在Linux上使用快照包
- str.c_str()
- 活猫还是死猫?| 薛定谔的猫 | 儿童故事
- 【附源码】计算机毕业设计SSM天气预报查询管理系统
- Tomcat配置虚拟目录
- CSDN学院免费课程领取教程
- Python爬虫实战(四) Python鬼灭漫画爬取+简单JS分析