黑马程序员————C语言结构体
来源:互联网 发布:大数据300a基金001420 编辑:程序博客网 时间:2024/05/15 12:14
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1,结构体简介
“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结构既是一种“构造”而成的数据类型,那么在说明和使用之前必须先定义它。
2,结构体定义
定义一个结构的一般形式为:
struct 结构名{成员表列};
例如:
例如:struct STU{int num;char name[20];char sex;float score;};
在这个结构定义中,结构名为STU,该结构由4个成员组成。第一个成员为整型变量num;第二个成员为字符数组name;第三个成员为字符变量sex;第四个成员为实型变量score。应注意在括号后的分号是不可少的。
注意:
1)不允许对结构体本身递归定义;
2)结构体内可以包含别的结构体;
3)定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量;
4)结构体变量占用的内存空间是其成员所占内存之和,而且各成员在内存中按定义的顺序依次排列。
3,结构变量声明
1)先定义结构,再说明结构变量。
struct STU{int num;char name[20];char sex;float score;};struct STU stu;
2)在定义结构类型的同时说明结构变量。
struct STU{int num;char name[20];char sex;float score;} stu;
3)省略结构名直接说明结构变量。
struct{int num;char name[20];char sex;float score;} stu;
4,结构变量的初始化
将各成员的初值,按顺序地放在一对大括号{}中,并用逗号分隔,一一对应赋值。只能在定义变量的同时进行初始化赋值,初始化赋值和变量的定义不能分开。
struct STU{int num;char name[20];char sex;float score;};struct STU stu = {100,“Jack”,’M‘,86.5};
5,结构体的使用
一般对结构体变量的操作是以成员为单位进行的,引用的一般形式为:结构体变量名.成员名
例如:
struct STU{int num;char name[20];char sex;float score;} stu;stu.num = 101;
6,结构体数组
数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。
例如:
struct STU{int num;char name[20];char sex;float score;} stu[5];
7,结构变量作为函数参数
将结构体变量作为函数参数进行传递时,其实传递的是全部成员的值,也就是将实参中成员的值一一赋值给对应的形参成员。因此,形参的改变不会影响到实参。
例如:
#include <stdio.h>struct STU{int num;char name[20];char sex;float score;};void xiugaifenshu(struct STU stu){printf("输入分数\n");scanf("%f",&stu.score)}int main(){struct STU stu = {100,“Jack”,’M‘,86.5};xiugaifenshu(stu);prinf("分数为:%f",stu.score);return 0;}
8,指向结构体的指针
每个结构体变量都有自己的存储空间和地址,因此指针也可以指向结构体变量。
结构体指针变量的定义形式:
struct 结构体名称 *指针变量名
有了指向结构体的指针,那么就有3种访问结构体成员的方式:
结构体变量名.成员名(*指针变量名).成员名指针变量名->成员名
例如:
#include <stdio.h>struct STU{int num;char name[20];char sex;float score;};int main(){struct STU stu = {100,“Jack”,’M‘,86.5};struct STU *p = &stu;stu.score = 75;(*p).score = 65;p->score = 55;return 0;}
0 0
- 黑马程序员————C语言结构体
- 黑马程序员———C语言 结构体
- 黑马程序员—C语言—结构体
- 黑马程序员——C语言结构体
- 黑马程序员——C语言------结构体、枚举
- 黑马程序员——C语言基础之结构体
- 黑马程序员——C语言结构体
- 黑马程序员——C语言之结构体
- 黑马程序员——C语言基础---结构体1
- 黑马程序员——C语言基础---结构体2
- 黑马程序员——c语言基础之结构体
- 黑马程序员——C语言中的结构体
- 黑马程序员——C语言基础---结构体
- 黑马程序员——C语言基础---结构体、枚举
- 黑马程序员—C语言_结构体、枚举
- 黑马程序员—C语言结构体知识梳理
- 黑马程序员——C语言之循环结构
- 黑马程序员——C语言的循环结构总结
- xamarin.forms保存数据和推送通知Azure Mobile Services
- HTTP协议的介绍
- HDU 1673 Optimal Parking
- PAT 1081. Rational Sum (20)
- eclipse导入Maven工程Failure to transfer org.apache.maven.shared:maven-mapping:pom:1.0***问题的处理
- 黑马程序员————C语言结构体
- 二进制中1的个数
- Linux学习笔记(二):cd命令的使用
- HDU 1181 变形课 BFS
- char *a 与char a[] 的区别
- Climbing Stairs
- why are U rejecting me
- 面试中的几道C/C++基础题
- UIResponder事件处理 _Lenny Kwok