C语言 结构体(基础知识)

1.结构体的声明

为什么要出现结构体??

当前学习的类型都是内置类型

char

short

int

double

...

为了描述复杂对象引入结构体

1.1结构的基础知识

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

区别于数组:

数组是一组相同类型的集合

1.2结构的声明

#include <stdio.h>

struct Stu
{
	//学生的相关属性
	char name[20];
	int age;
	char sex[5];
	char tele[12];
} s3, s4;
//s3,s4是结构体类型的变量
//s3,s4是全局的

int main()
{
	struct Stu s1;
	struct Stu s2;
	//s1,s2是结构体类型的变量, 是局部变量

	return 0;
}

该类型定义main中不可缺少struct

让我们看看可以省略struct的

#include <stdio.h>
typedef struct Stu
{
	//学生的相关属性
	char name[20];
	int age;
	char sex[5];
	char tele[12];
}Stu;//Stu 是重命名产生的新的类型


int main()
{

	Stu s5;

	return 0;
}

 1.3结构成员弟弟类型

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

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

声明类型的同时定义变量p1

struct  point
{
	int x;
	int y;
}p1;        //声明类型的同时定义变量p1

定义结构体变量p2

struct point p2;//定义结构体变量p2

初始化,定义变量的同时赋值

struct point p3 = { x,y };

类型的声明

struct stu //类型声明
{
	char name[15];
	int age;
};

初始化

struct stu s ={"zhangsan",20};//初始化

结构体嵌套初始化

struct Node 
{
	int data;
	struct point p;
	struct Node* next;
}n1 = { 10,{4,5},NULL };  //结构体嵌套初始化

初始化

struct Node n2 = { 20,{5,6},NULL };

2.结构体成员的访问

有两种访问方式:

结构体变量.成员名

结构体指针->成员名

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

我们如何访问呢??

struct S s;
strcpy(s.name, "zhangsan");//使用.访问name成员
s.age = 20;//使用.访问age成员

结构体指针访问指向变量的成员
有时候我们得到的不是一个结构体变量,而是指向一个结构体的指针。
那该如何访问成员。

 

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对自己好点儿i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值