C语言之结构体(Struct)

结构体的两种定义方法

方法1

定义一个结构体:

struct Name
{
	int temp1;
	float temp2;
};

1.1、定义一个结构体变量:

struct Name name;

1.2 、定义一个结构体变量:

struct Name
{
	int temp1;
	float temp2;
}name;

效果相当于 struct Name name; 只不过是在定义结构体的时候顺便把结构体变量也定义了。但如果还想再定义另外一个结构体变量,还是得用方式一的方法操作一遍。

struct Name name2;

也就是说,采用了这种定义方法,struct Name就绑定在一起,成为一个新的变量了。我们不妨把struct Name理解成一个种新变量,和int,char这些一样

方法2

定义一个结构体(常用):

typedef struct
{
	int temp1;
	float temp2;
}Name;

2.1、定义一个结构体变量(常用):

Name name;

2.2、定义一个结构体变量:

typedef struct
{
	int temp1;
	float temp2;
}Name;name;

效果相当于 Name name,此处相当于用关键字typedef给该结构体取了一个别名Name。
此外,指针和结构体也经常结合使用,我们用2.1的方式(下同)来定义一个结构体变量指针。

Name *name;

结构体的成员的初始化与访问

无论是初始化,还是访问结构体成员,都用符号’.'。

Name name;
name.temp1 = 5; 

而当定义为一个结构体指针时候,再次访问成员需要用到’->‘符号。

Name *name;
name->temp1 = 5;

(*name).temp1 = name->temp1;

应用举例

#include <stdio.h>

typedef struct 
{
	char name[20];
	int age;
	float score;
}student;


void show_information(student* p);


void show_information(student* p)
{
	printf("The student's name is: %s \n",p->name);
	printf("The student's age is: %d \n", p->age);
	printf("The student's score is: %f \n", p->score);	
}


int main()
{
	student p;
	
	printf("Please enter the student's name:");
	scanf("%s",p.name);
	printf("Please enter the student's age: ");
	scanf("%d", &p.age);
	printf("Please enter the student's score: ");
	scanf("%f", &p.score);
	
	show_information(&p);	
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

__TAT__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值