struct初始

目录

1.struct的作用:

(1).解释

(2).与数组对比

2.struct的定义

3.typedef的使用

这样使用起来更方便

4.struct的使用

(1)定义结构体

(2)使用结构体变量

5.typedef与define的区别

 如果有错误,欢迎指正,O(∩_∩)O谢谢


1.struct的作用:

(1).解释

struct是结构体关键字,结构体是一种集合,它们里面的成员变量的类型可以相同,也可以不同,可以是数组,也可以是指针,甚至可以是结构体(这个的使用比较复杂,我们在‘6’里详细阐述)。

(2).与数组对比

①数组里存储的变量是相同类型,而struct里变量可以是不同类型。

②数组里的变量是连续的,而struct里的变量是否连续比较复杂,我们后续详细分析。

2.struct的定义

struct 结构体名{
    结构体所包含的变量或数组
};

例:


struct stu 
{
	char name[20];
	int age;
	int sex;
	float chinese;
	float math;
	float english;
	float sum;
};
//struct stu stu1;(使用的时候)

3.typedef的使用

tpyedef:给一个类型(包括struct)起一个别名,在我看来,typedef相当于起了一个公认的外号。

我们将上面的代码用typedef改写一下:


typedef struct stu 
{
	char name[20];
	int age;
	int sex;
	float chinese;
	float math;
	float english;
	float sum;
}student;
//student stu1;(使用的时候)

这样使用起来更方便

4.struct的使用

(1)定义结构体

struct stu stu1;(使用的时候)

(2)使用结构体变量

#include<stdio.h>
typedef struct Student
{
	char name[20];
	int age;
	float chinese;
	float math;
	float english;
	float sum;
}stu;
int main()
{
	stu stu1 = {"wu",28,80,90,100,270};
	
	printf("%s,%d,%4.1f,%4.1f,%4.1f,%4.1f", stu1.name, stu1.age,  stu1.chinese, stu1.math, stu1.english, stu1.sum);
	
}

在使用时,要注意我们在赋值时,可以初始化,在初始化时要注意数据类型,注意格式:

int,float1
char'1'
char a[]"1"

后来赋值的时候,要注意字符串,其它变量可以用‘=’,但是字符创比较有个性,他必须用‘strcpy’,这个关键字存在于“#include<string.h>”。

如果结构体指针怎么调用

#include<stdio.h>
#include<stdio.h>
#include<typeinfo>
typedef struct Student
{
	
	float chinese;
	float math;
	float english;
	
}stu;
int main()
{
	stu stu1 = {80,90,100};
	stu  *a=&stu1;
	printf("%d %d %d", a->chinese, a->english, a->math);
	printf("%d", (*a).chinese);

}

5.typedef与define的区别

define是简单地替换

typedef是给数据类型一个新的名字

首先我们介绍一个关键字typeid

它存在于“#include<typeinfo>”,typeid 关键字的作用就是获取一个表达式是类型,返回表达式的类型,例;

我们分别用define和typedef来定义指针,具体操作如下:

#include<stdio.h>
#include<typeinfo>
#define POINT int*
typedef int* point;
int main() 
{
	int* a, b;
	POINT c, d;
	point e, f;
	printf("%s %s\n", typeid(a).name(), typeid(b).name());
	printf("%s %s\n", typeid(c).name(), typeid(d).name());
	printf("%s %s\n", typeid(e).name(), typeid(f).name());
}

 

 如果有错误,欢迎指正,O(∩_∩)O谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值