51单片机入门(补充)1--与C语言的交接

我写完上一个文章,发现我写的还是不够全面,所以,这篇文章将会延续上一个文章的内容,并且再次补充新的东西,如果还有什么地方需要补充,还请各位一一指出,如果你已经学过这些东西,大可以直接跳过,假如说之后有地方忘了,也可以返回来继续学习

我们接下来说一说C语言的构造类型,C语言中的构造类型有[数组],[结构体],[共用体],[枚举类型],让我们来一一进行说明

  • 数组:数组应该是大家了解的最早的构造类型了,为什么说数组是构造类型呢,我不知道大家当时是怎么学习的,我现在要给大家说的是,其实所有的数组都是一维数组,那我们的多维数组是怎么来的呢,是因为我们数组的元素仍然可以是数组,所以用这样的关系,我们可以创造出多维数组,接下来简单的说一说数组:
#include<stdio.h>

int main(void)
{
  int a[2][2]={1,2,3,4};//整形数组的定义及一些初始化的方法
  char b[2][2]={{'a','b'},{'c','d'}};//字符型数组的定义及一些初始化的方法
  a[0][1]=a[1][0]+a[1][1];//数组元素和同类型的变量是一样的,变量怎么使用,数组元素就可以怎样使用  
  
  return 0;
}

除此之外,还有数组名和指针的关系,你可能还去了解了语法糖等东西,但是那些对于我们入门51单片机不是必须学会的,但并不是说就可以不学了,只是当前我们入门51单片机可以暂时不用那方面的知识

  • 结构体:结构体也是C语言一个重要的知识点,就以我自己来说,我的C语言课程都没有学到这里,我不知道大家是怎么样的,但是会有一些人没有学到这里,所以我需要说一下结构体,如果说之前的数组并不是很能体现构造类型的特点,那么我们的结构体一定能体现出来

结构体是由若干"成员"组成的,其中的每一个成员可以是一个基本数据类型,也可以又一个构造类型,那么我们现在可以知道,结构体是一种新的类型,所以我们应该先对其进行构造(我们称为声明一个结构体)

struct 结构体名
{
  成员列表
};
 

关键字struct表明我是要声明一个结构体了,后面的结构体名是结构体的类型名(这个是要强调的,这个不是变量名,是类型名,和int一样是类型名)

struct Grade
{
	int Chinese;//结构体中可以有基本数据类型
	int Math;
	int English;
};

struct Student
{
	int age;
	char name[10];//可以有构造类型
	int number;
	char sex[10];//可以有多种不同数据类型
	struct Grade data;//成员也可以又是一个结构体,这里有关于结构体定义的东西,我们马上会说到
};

就像这样的一个例子,我们就可以知道一个结构体类型(注意是类型,不是变量)是如何定义的了,成员只要合法,剩下的都随你

接下来说结构体变量的定义,和普通的变量一样,类型名加变量名,主要的有以下三种定义的方式

  1 struct student
  2 {
  3 	char name[10];
  4 	int number;
  5 }Stu;
  6 //这个是定义结构体的同时定义变量,结构体变量为Stu
  7 
  8 struct student
  9 {
 10 	char name[10];
 11 	int number;
 12 };
 13 struct student Stu;
 14 //这个是在定义了结构体类型之后,再定义结构体变量,同样的变量还是Stu
 15 
 16 struct
 17 {
 18 	char name[10];
 19 	int number;
 20 }Stu;
 21 //这个是没有结构体类型名的定义,这种类型定义变量只能是定义结构体的同时定义变量,不能在别处定义

紧接着我们就说一说结构体变量的使用,我们在访问结构体变量的时候会用到成员操作符:"."和"->",其中"."用于结构体变量,比如Stu.name就是访问Stu的name成员,而我们如果是指针类型则需要"->",比如说&Stu->name,因为我们的&Stu是Stu的指针,也就是结构体指针,所以我们想要访问结构体成员就需要使用"->"而不是".",结构体的成员和普通的变量使用起来是一样的,在这里大家可以去查阅一些资料查看具体的知识点

共用体和结构体的定义是类似的,你只需要把struct改成union,就是共用了啦,共用体和结构体用法是一样的,只是结构体的成员是同时存在的,而共用体的成员同一时间只能存在一个,在给一个成员赋值的时候,别的成员都是失效的,这就是共用体和结构体的区别

剩下的是枚举类型,这个在单片机中虽然会用到,但是你是可以不必了解的,如果你想了解,可以上网查阅资料,我之后也可能会写C语言入门的博客,到时候再看也是可以的

关于构造类型就说到这里了,想要熟练的掌握使用它,就要自己用工了

 

posted @ 2020-03-01 02:17  时_光  阅读(255)  评论(0编辑  收藏  举报