C语言结构体复习
来源:互联网 发布:php有线程吗? 编辑:程序博客网 时间:2024/05/17 06:38
一、发明结构体的初衷
人们发现很多不同的数据类型之间不是互相独立的而是互相关联的,比如一位学生的姓名、学号、成绩等数据。显然,把这些数据放在一起管理起来会轻松不少,但数组满足不了这个需求,因为数组只能存放同一类型的数据,所以就出现了结构体,千万不要忘了最后的分号。
struct Student{ char name[20]; int num; int score[5];};
经过上面的指定,struct Student就是一个在本程序中可以使用的合法类型名,将Student称为结构体标记以区分不同的结构体类型。它和系统提供的标准类型int、char、float、double等具有类似的作用,都可以用来定义变量。.
格式如下:struct Student student_1;
二、结构体变量的引用
格式如下:结构体变量名.成员名
“.”是成员运算符,拥有最高运算优先级。如果成员本身又属于一个结构体类型,则要用成员运算符逐级找到最低一级的成员。
student_1和student_1.num都是变量名,与一般数据类型定义的变量没有差异。&student_1输出的是这个结构体变量在内存中的首地址,&student_1.num输出的是成员变量num在内存中的地址。
三、结构体指针
指向结构体对象的指针变量既可指向结构体变量,也可指向结构体数组中的元素。指针变量的基类型必须与结构体变量的类型相同。
例如:struct Student *pt; //pt可以指向struct Student类型的变量或数组元素。
(*p).num与student_1.num与p->num等效,*p等价于student_1,->是指向运算符
四、指向结构体数组的指针
一定要注意,结构体数组相当于普通的一维数组,不存在一级指针、二级指针这样的分别。在应用指针时,只要把结构体数组类比于一维数组即可。
在上文已经提到*p等价于student_1,在结构体数组当中p[i]等价于*p。
关键还是在于通过(*p),p[i]将其效果等价到student_1这里,那么应用起来就得心应手了。现在看来[ ]跟在汇编语言中一样具有寻址的功能,当然这只是一个比喻。
- C语言结构体复习
- C语言结构体复习
- C语言复习之结构体基础知识
- C语言复习之结构体基础知识
- C语言复习 -- 自引用结构体
- C语言复习之结构体基础知识
- C语言复习之结构体基础知识
- c语言结构体复习笔记
- 复习c结构体
- C语言复习之结构体和指针
- C语言复习——结构体编程练习
- C语言基础复习——结构体(1)
- C语言复习——循环结构
- C 语言复习与提高---VII. 结构体与共用体
- 对C语言结构体知识点的学习以及复习相关基础知识
- C语言复习 -- 结构体指针与自增运算符
- C语言复习 -- 结构体指针与自增运算符
- 2015.4.20_DSP学习1,C语言结构复习
- hdoj 1008
- 用angr解二进制题目1
- B树
- Java NIO网络编程
- 1.输入一个整数输出去除第一位的剩下的数
- C语言结构体复习
- Android7.0 安装apk更新包的适配
- java TCP/IP Socket编程-----NIO--Buffer-----笔记10
- git使用总结
- 63_常用类_包装类_Integer_Number_JDK源码分析
- SNMP协议详解
- PL/SQL Developer官方下载地址
- Handler,使用PostDelayed延迟执行任务
- 网络缓存