栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之结构体

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之结构体

目录

1. 结构体类型的声明

2. 结构体初始化

3. 结构体成员访问

4. 结构体传参


1. 结构体类型的声明

创建一个结构体类型,其实就相当于相当于一个int类型,类型本身并不占用内存空间的,只有定义和初始化的时候才开辟空间

//结构体的申明1
struct stu//创建一个结构体类型,相当于int,不占用内存空间的,定义初始化时才开辟空间;
{
	char name[20];
	int age;
	char tele[12];
	char sex[5];
};//一定要加分号。
//a1,a2,a3;//这里可以创建结构体全局变量

//结构体的申明2
typedef struct stu2//以上两种申明方法是一样的
{
	char name[20];
	int age;
	char tele[12];
	char sex[5];
}Stu;

2. 结构体初始化
	//结构体的定义和初始化;
	struct stu s1 = {"zhangsan", 12, "1580000", "male"};
	Stu s2 = {"lisi", 15, "1580000", "male"};
    s1.name = "wangwu";

3. 结构体成员访问

有两种访问方法

Stu s1;
Stu * p;
s1.name = "liuxiao";//访问方法1
p->age = 18;//访问方法2

4. 结构体传参

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

void Print1(Stu tmp)//传结构体,这种方法实际上是拷贝了一份给tmp
{
	printf("name: %sn",tmp.name);
	printf("age: %dn",tmp.age);
}

void Print2(Stu* p)//传结构体指针
{
	printf("tele: %sn",(*p).tele);
	printf("sex: %sn",p->sex);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989673.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号