我是靠谱客的博主 坚强猫咪,最近开发中收集的这篇文章主要介绍C语言-结构体,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.初识结构体

结构体的作用:放置变量的定义,使程序更加清晰明了;
结构体的使用:首先,要进行结构体内容的定义;然后,要进行结构体变量,指针或数组的定义;最后,对结构体变量,指针或数组进行初始化;
结构体的语法:struct (变量名)
        {结构体内容}变量、指针或数组名字或直接进行初始化;

2.简单结构体的使用

#include<stdio.h>
#include<string.h>
//定义结构体方法之一
//Student是结构体的名字
//大括号内部是结构体定义的内容
struct Student
{
int age;
char name[50];
int score;
};
//这里定义结构体的同时直接定义全局的结构体变量Stu1和Stu2;
//在这里定义的结构体变量可以直接在主函数中使用;
//同时,可以在这里直接对结构体变量进行初始化操作;
struct Student1
{
int age;
char name[50];
int score;
}Stu1,Stu2={18,"Tom",67};
//下面定义的是佚名结构体,在主函数中不可以进行结构体变量等的定义;
//仅仅只能用在这里直接定义的结构体变量;
struct
{
int age;
char name[50];
int score;
}Stu0;
int main()
{
//定义结构体变量
struct Student stu;
//结构体变量的初始化
stu.age=19;
strcpy(stu.name,"Tom");
stu.score=90;
//定义结构体指针
struct Student *p=&stu;
//通过指针对变量进行赋值
//这里的 -> 可以换成 .
p->age===>(*p).age
p->age=18;
strcpy(p->name,"Tom");
p->score=78;
//定义结构体数组
struct Student s[2];
//给结构体数组赋值
s[2]=
{
{18,"Tom",77},
{19,"Jim",99},
{16,"Lily",66}
}
//打印学生信息
printf("名字:%s n年龄:%d n成绩:%d n",stu.name,stu.age,stu.score);
return 0;
}

3.结构体的嵌套

#include<stdio.h>
#include<string.h>
//对嵌套的结构体进行定义
struct Info
{
int age;
char name[50];
};
struct Student
{
struct Info info;
int score
};
int main()
{
struct Student s;
//在这里需要注意不能直接用s.age,要加上嵌套的结构体s.info.age
s.info.age=18;
strcpy(s.info.name,"Tom");
s.score=89;
printf("%d,%s,%dn",s.info.age,s.info.name,s.score);
return 0;
}

4.union共同体

首先,共同体同结构体的语法规则是一样的;
其次,共同体的内存同共同体中的占用内存最大的变量大小相同;
最后,当对共同体中的某一个变量赋值,会对其他的变量产生影响。

#include<stdio.h>
#include<stdlib.h>
union Student
{
char name[40];
int age;
int score;
};
int main()
{
union Student S;
S.age=0x18;
S.score=0x2233;
printf("%d,%sn",S.age,S.score);
return 0;
}

5.enum 枚举的使用

首先,枚举的结构同结构体相同;
其次,枚举的内部定义简单来说就是给一些特征贴上标签;

#include<stdio.h>
enum color
{
//这里面的各个特征依次赋予标签0,1,2,3,10,11
red,green,white,black,blue=10,light
};
int main()
{
int col=1;
if(col==red)
{
printf("redn");
}
else if(col==green)
{
printf("greenn");
}
else
{
printf("Other!n");
}
enum color tmp;
tmp=red;	//给枚举变量tmp赋值为0
return 0;
}

6.typedef 的使用

首先,typedef不能够定义新的变量类型;
其次,这个函数能够给变量类型定义一个附属的名字。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
char name[20];
int age;
int score;
};
int main()
{
typedef struct Student Stu;
Stu s;
s.age=18;
s.score=99;
strcpy(s.name,"Tom");
printf("%s,%d,%dn",s.name,s.age,a.name);
return 0;
}

最后

以上就是坚强猫咪为你收集整理的C语言-结构体的全部内容,希望文章能够帮你解决C语言-结构体所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部