在课程的开始阶段,由于之前没有接触过C语言,对于C语言以及编程还比较陌生,后来在开始的课程中了解了计算机的组成结构,包括输入输出存储设备等,了解到C语言的重要性,它是一门相对底层的编程语言,嵌入式项目开发必须要用到C语言进行编写程序,完成对硬件的控制,实现相应的功能。C语言的编程需要搭建虚拟机,在虚拟机上进行编程。随后介绍了虚拟机的Linux操作系统,以及目录结构和相关的linux命令,通过这些命令来实现对Linux系统的文件完成新建访问等操作,为学习编程做准备。
熟悉了Linux操作系统后,了解到写程序就是通过在Linux终端用户目录下合适的位置创建文件夹,在文件夹中创建文件,vim文件名编写代码,然后再通过gcc 文件名 编译代码,转换为计算机识别的代码,生成./a.out文件保存,./a.out执行文件实现相应功能。这样就了解了什么是程序,程序能干什么。需求就是要实现的功能,功能需要代码组成程序来实现。如何将功能转化为代码,需要数据作为桥梁。数据是计算机能识别并保存的内容,进而能实现对数据的操作,将需求转化为数据计算机识别,在进行操作,再输出数据,便实现了对数据的操作,实现了要完成的功能。
进一步了解了数据在计算机中以什么方式进行保存:以二进制八进制十进制十六进制保存数值数据,以及各进制数据间的相互转换。在计算机中能够保存的数据有哪几种,不同的种类叫做数据类型,表示不同数据的性质。了解了数据如何保存到计算机中,需要在计算机相应的位置开辟一个存储空间,用相应的方式存放数据,这个过程叫做定义变量并赋值。其中数据类型决定开辟空间的大小,空间名字叫作变量名,存储的位置叫做存储类型。(auto static register extern)定义的过程为 存储类型 数据类型 变量名;上面便实现了数据的存储。把开辟空间存放数据的过程叫做定义变量,变量用来存放数据常量,常量为123或者字符等现实存在的不能改变的量,数据类型决定了存放什么类型的数据常量。在这各过程学习了定义不同数据类型变量所开辟空间的大小,进而计算出了不同类型变量存放数据的范围,了解了各种常量的了类型,学习了一个特殊的常量,表示常量宏,为单纯的替换,定义时需要给每个变量和整体狗加上括号。
上面实现了对数据的存储,如何现实生活中由需求转化的需要操作的数据保存到计算机中,需要通过键盘输入结合scanf(“”,&变量名);相当于提前开辟一个空间用于保存键盘输入的内容分,到程序执行到此命令是,相当于打开一个接口,键盘能够将数据键入到程序中,实现数据的输入,进而实现对数据的操作。操作完就需要对数据进行输出,print(“”,);输出的数据便直接或间接实现了相应的功能。在这个过程学习了数据输入输出的标准命令,以及输入输出的规则。不同输入输出命令间的区别。Scanf printf getchar putchar gets puts。
实现了数据的输入,就要对数据进行操作转化,这个过程较需要用到数据的运算。进而学习了数据的运算规则:,单算移关羽,异或逻条赋值:表示了运算符的先后顺序,运算符对数据的操作过于简单需要结合不同的结构体,进行更为复杂的运算。不同的结构体表示不同的运算逻辑顺序,通过三大结构相互结合嵌套便能实现负责的数据运算处理,实先需要的功能。在这个过程学习了三大结构体的运算逻辑,及使用方法,以及不同的结构体可以实现哪些功能(打印杨辉三角等),相同的功能可以用不同的语句实现。
当输入的数据大量时,普通的输入过程过于繁琐,需要重复的代码实现简单的数据输入功能,此时便可定义一个连续的空间,每个空间存储相同类型的数据,组成一组数,在输入时只需知道第一个地址,通过循环语句便可逐个顺序放进开辟的空间。开辟连续空间的过程叫定义一个数组,数组的出现减少的输入的代码量,且地址连续,计算机只需知道第一个数据的地址便能对这个连续空间的数访问。计算机存储的最小单元时字节,每个字节都有编号,编号就叫地址。如何进行访问地址,需要定义一个空间来存放这个地址,这个过程叫做定义指针变量,指针变量名就是空间名,存放的是地址,通过对地址前加*便能访问地址算在空间的内容也能进行操作。指针的数据类型决定了首先它保存的是一个地址,其次能保存什么类型数据的地址。
相同类型的数组能继续组合一个新的数组,理解为由相同类型的数组组成的数组,为数组数组。二维数组也可通过指针进行操作,指针和数组的关系如下: