C语言中的结构体如何使用(c语言,开发技术)

时间:2024-05-04 07:56:57 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

希望大家仔细阅读,能够学有所成!

结构体的声明

结构体的定义:结构体是一些值的集合,这些值称为成员变量,结构体的每个成员可以是不同类型的变量。

举例:

//定义结构体类型
structtag//struct结构体关键字tag结构体标签structtag结构体类型
{
//成员变量
charname[20];
shortage;
chartelphone[12];
charsex[5];
}s1,s2,s3;//s1,s2,s3是三个全局结构体变量
intmain()
{
structtags;//s是局部变量
return0;
}

小tips:结构体类型是不占内存空间的,-相当于int在C语言中也是不占内存的,而int a(定义a变量后就会占据内存)

使用typedef定义一个单独的变量,因为我们在编写代码的过程中,重复的书写struct会感觉很繁琐,这样定义之后就可以直接使用改变量作为结构体类型。

举例:

typedefstructtag//定义tag为结构体别名,tag等价于structtag
{
charname[20];
shortage;
chartelphone[12];
charsex[5];
}tag;//tag指的是类型,而不是变量
intmain()
{
structtags1;
tags2;//structtag==tag,因此tag可以直接使用
return0;
}

结构体成员的类型

结构体成员的类型可以是标量,数组,指针。其他结构体。

结构体变量的定义和初始化:

#include<stdio.h>
typedefstructtag
{
//结构体成员类型的定义
charname[20];
shortage;
chartelphone[12];
charsex[5];
}tag;
intmain()
{
tags1={"张三",20,"15372842487"};//结构体变量的初始化
printf("%s的年龄是%d,手机号码为%s\n",s1.name,s1.age,s1.telphone);//输出有关该成员的信息,通过结构体变量找对应的成员变量
structtags2={"lisa",19,"8725111"};
printf("%s的年龄是%d,手机号码为%s",s2.name,s2.age,s2.telphone);
return0;
}

结果

C语言中的结构体如何使用

结构体成员的访问

结构体变量访问成员:结构体变量的成员是通过点操作符(.)访问的,点操作符接受两个操作数。

例如:

structstu
{
charname[20];
intage;
}s1={"张三",19};
intmain()
{
printf("%s的年龄是%d",s1.name,s1.age);//s1.name和s1.age就是通过点操作符访问结构体成员
}

输出:

张三的年龄是19

结构体传参数的时候,要传结构体的地址,其原因是函数传参的时候,参数是需要压栈的,如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,因此会导致性能下降。

举例:

typedefstructstu
{
charname[20];
intage;
}stu;
voidprint1(stutmp)//传递结构体的值
{
printf("name:%s\n",tmp.name);
printf("age:%d\n",tmp.age);
}
voidprint2(stu*ps)//传递结构体的地址,开辟的空间为一个指针的大小(4/8个字节)
{
printf("name:%s\n",ps->name);
printf("age:%d\n",ps->age);
}
intmain()
{
stus={"张三",19};
print1(s);
print2(&s);
return0;
}

输出:

name:张三
age:19
name:张三
age:19

这里插播一点数据结构的知识:数据结构分为线性数据结构(顺序表,链表,栈,队列)和树形数据结构(二叉树,图)。

顺序表:按照一定的顺序将元素储存起来。

举例:

C语言中的结构体如何使用

链表:用一条线将元素连接起来,不要求元素都在同一条线上。

举例:

C语言中的结构体如何使用

栈:元素先进后出,后进先出,元素的出入方式类似于手电筒中的电池一样,向一个不含任何元素的栈中放入一个元素的过程叫压栈,删除栈中的一个元素的过程,叫出栈,栈中元素的删除也是由栈顶乡下进行删除,因此如果想删除栈中元素,不能直接删除,必须将在该元素后面放入的元素都进行删除。

举例:

C语言中的结构体如何使用

实例分析:

intadd(intx,inty)
{
intz=0;
z=x+y;
returnz;
}
intmain()
{
inta=10;
intb=20;
intret=0;
ret=add(a,b);
printf("%d\n",ret);
return0;
}

输出:

30

C语言中的结构体如何使用

函数在调用的时候,实参的传递顺序是从右到左,将a,b放入x,y的过程叫压栈。

本文:C语言中的结构体如何使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:TypeScript基础使用实例分析下一篇:

29 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18