对C语言 结构体 和 结构变量
一、结构体/结构的引入
在学生的登录记录表中,姓名应该为字符型、学号可以为整形或字符型,年龄应该为整形,性别应该为字符型,成绩可以整形或实型。显然不能用一个数组来存放这一组数据,因为数组各元素的类型和元素都必须一致。
二、定义结构
为了定义结构,必须用struct语句。struct语句定义了一个包含多个成员的新的数据类型。
Struct 结构名 { 成员列表; }变量名列表;Struct stu { Int num; Char name[20]; Char sex; Float score; }boy1,boy2;三、定义结构变量的三种方式
1.先定义结构,再说明结构变量 struct stu { int num; char name[20]; int age; }; struct stu boy1,boy2;例如: #define STU struct stu STU { int num; char name[20]; int age; }; STU boy1,boy2; 2.在定义结构类型的同时说明结构变量。 struct stu { int num; char name[20]; int age; }boy1,boy2; 3.直接说明结构变量 struct { int num; char name[20]; int age; }boy1,boy2;四、结构体嵌套
首先定义一个date,由month(月),day(日),year(年)三个成员组成。在定义并说明变量boy1和boy2时,其中的成员birthday被说明为date结构类型。成员名可以与其他的变量同名,互不干扰。
Struct date{Int month;Int day;Int year;};Struct {Int num;Char name[20];Char sex;Struct date birthday;Float score;}boy1,boy2;Num | Name | Sex | Birthday | score | ||
Month | Day | year | ||||
五、结构变量
5.1 结构变量成员的表示方法
在程序中使用结构变量时,往往不把他作为一个整体来使用。
在程序中具有相同类型的结构变量可以相互的赋值,一般结构变量的使用,包括赋值、输入、输出、运算等都是通过结构变量的成员来实现的。
结构变量成员的一般形式:
结构变量名.成员名 例如:boy1.num 即第一个人的学号。
**如果成员变量本身就是一个结构,那么需要逐级找到最低级的成员才能使用。
例如:boy1.birthday.month 即第一个人出生的月份。
5.2 结构变量的赋值
结构变量的赋值就是给各个成员赋值,可以用输入语句或者赋值语句来完成。
/*
本程序中用赋值语句给num和name两个成员赋值,name是一个字符串常量。用sacanf函数动态的输入sex和score成员值,然后就把boy1的所有的成员的值整体赋值于boy2。最后分别输出boy2的各个成员值,
本示例表示了结构变量的赋值,输入和输出状态。
*/
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(int argc,char **argv) {struct stu {int num;char name[20];char sex[20];float score;}boy1,boy2;boy1.num = 102;strcpy(boy1.name,"shi wen jie");printf("please input sex and score:\n");scanf("%s %f",boy1.sex,&boy1.score);boy2 = boy1;printf("num\tname\t\tsex\tscore\n");printf("num=%d\tname=%s\tsex=%s\tscore=%f\n",boy2.num,boy2.name,boy2.sex,boy2.score);return 0; }5.3 结构变量的初始化
和其他类型的变量一样,对结构变量可以在定义时进行初始化赋值。
#include<stdio.h> int main(int argc,char **argv) {struct stu{int num;char *name;char sex[20]; //或者是char *sex;float score;}boy2,boy1 = {102,"shi wen jie","nan",65.7};boy2 = boy1;printf("num\tname\tsex\tscore\n");printf("num=%d\tname=%s\tsex=%s\tscore=%f\n",boy2.num,boy2.name,boy2.sex,boy2.score); }总结
以上是生活随笔为你收集整理的对C语言 结构体 和 结构变量的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: malloc和free——结构体中动态内
- 下一篇: 对C语言 结构数组 指向结构变量的指针