目录
九、结构体(基础)
9.1 创建结构体
9.2 结构体初始化
9.3 结构体变量的数据打印
10、结语
九、结构体(基础)
定义:用于描述复杂对象,
9.1 创建结构体比如:描述一个学生,需要的是,姓名+性别+年龄+学号。
代码9_1:创建一个学生结构体:
#includestruct Student { //创建结构体 char name[20];//用于存储姓名 char sex[10];//用于存储性别 short age;//用于存储年龄 int number;//用于存储学号 };
9.2 结构体初始化说明:
(1)创建结构体需要用到关键字struct,同时需要结构体名称;
(2)结构体中的变量在创建时均未存储,所以不用初始化,但数组中的元素个数必须为确定的;
(3)结构体创建结束后的分号不可少;
创建好一个结构体后,在主函数中,我们需要再创建一个结构体变量,即申请空间来存储信息后,才能够初始化。
代码9_2,创建结构体变量并初始化:
#includestruct Student { char name[20]; char sex[10]; short age; int number; }; int main() { //创建结构体变量st1、st2 struct Student st1={"张三","男",20,20211024}; struct Student st2={"李四",“男”,18,20212025}; return 0; }
9.3 结构体变量的数据打印说明:
以上代码即完成了创建结构体变量以及初始化,st1、st2为结构体变量,类型是struct Student类型,初始化应使用大括号,其中字符串用双引号引起,数字不需要,并且初始化顺序与结构体中保持一致。
补:
字符串中,如果是字母字符串,每一个字母所占空间为一个字节;如果是文字字符串,每一个汉字所占空间为两个字节。
打印结构体中的数据,就需要访问到结构体的数据并取出来。这时,我们就要用到 *** 作符中没有介绍的两个:点 *** 作符.和箭头 *** 作符->(结构体成员访问 *** 作符)。
#includestruct Student { char name[20]; char sex[10]; short age; int number; }; int main() { struct Student st1 = { "张三","男",20,20211024 }; struct Student st2 = { "李四","男",18,20211025 }; struct Student* list = &st1;//list为指针变量,类型是struct Student* printf("%s %s %d %dn", st1.name, st1.sex, st1.age, st1.number); printf("%s %s %d %dn", (*list).name, (*list).sex, (*list).age, (*list).number); printf("%s %s %d %dn", list->name, list->sex, list->age, list->number); return 0; }
说明:
打印结构体变量中的数据使用的就是点 *** 作符以及箭头 *** 作符。
(1)点 *** 作符:结构体变量.结构体成员,使用解引用符号时必须要有括号
(2)箭头 *** 作符:结构体指针变量->结构体成员
(3)以上用法均为规定用法。
结构体基础我们就介绍到这里,点到为止。后期会有更加详细的介绍,值得一提的是,结构体的用处非常之大,比如后面会学习的数据结构,其中就使用了大量的结构体。
10、结语到这里C语言基础篇就宣布完结了,掌握了基础后,相信对C语言有了初步的了解,希望在接下来的学习中再接再厉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)