0
点赞
收藏
分享

微信扫一扫

C语言----初始结构体详解

alanwhy 2022-03-26 阅读 104
c语言c++

此文是作者初次学习C语言的时候,写的笔记博文,如有错误请及时指正,谢谢!!!


目录

1,什么是结构体

2. 结构体的声明

2,1结构体声明

2,2结构体成员的类型

2,3结构体变量的定义的初始化

3. 结构体成员的访问

4. 结构体传参

5,拓展




1,什么是结构体

我们已经学过的数据类型有 char, int,long, short, long long, float, double,这些类型只能描述单一的对象,不能描述复杂的对象。 比如现在我们要描述一个学生类型的复杂对象,需要描述他的名字, 年龄, 性别, 成绩----。 我们就需要吧char类型的, int类型的, float类型的。整合到一起共同构成这个复杂对象。把这些单一对象和在一起就需要用到结构体。

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

2. 结构体的声明

2,1结构体声明


//结构体类型的声明
struct stu//这里的struct是用来定义结构体
	//stu是结构体名(自定义的)
{
	char name;//名字
	int age;//年龄
	char sex[8];//性别
	float score;//分数

};//注意这里有一个;
struct stu
{
	char name;
	int age;


}s1, s2, s3;
//这里的s1,s2,s3是通过struct stu类型创建的变量
//可以写也可以不写,可以写一个也可以写多个。
//此时创建的s1, s2, s3,是全局变量。
//但是平时很少这样定义

int main()
{
	//在主函数内部也可以创建结构体变量
	struct stu s4;
	struct stu s5;//这里的s4, s5就是局部变量
	//struct stu整体才是结构体类型, 不能随便省略任何单个词
	 
	 
	 
	//如果觉得结构体类型太长, 这里可以用到typedef//类型重定义或者类型重命名
	typedef struct stu stu;//把struct stu 重新起个名字叫stu
	stu s5;
	stu s6;//这里经过类型重定义,就可以用自定义的类型名来创建变量s5,s6


	return 0;
}

typedef struct stu
{
	char name;
	int age;
	char sex[8];
	float score;
}stu;

//然后以后就可以用 stu 来定义结构体变量。

2,2结构体成员的类型

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

2,3结构体变量的定义的初始化



3. 结构体成员的访问



4. 结构体传参


struct S
{
 int data[1000];
 int num;
};
struct S s = {{1,2,3,4}, 1000};



//结构体值传参
void print1(struct S s)
{
 printf("%d\n", s.num);
}



//结构体址传参
void print2(struct S* ps)
{
 printf("%d\n", ps->num);
}



int main()
{
 print1(s);  //传结构体
 print2(&s); //传地址
 return 0;
}

5,拓展

举报

相关推荐

0 条评论