项目名称 | 苏嵌实训-嵌入式LinuxC第 5天 |
今日进度以及任务 | C语言的复习强化,并且编写代码 |
本日任务完成情况 | 1.C语言之父? 丹尼斯·里奇
2.C语言的特点(优势)? C语言既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序;也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 运算符丰富 C的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 数据结构丰富 C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据类型的运算,并引入了指针概念,使程序效率更高。 另外C语言具有强大的图形功能,支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。 C是结构式语言 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。 C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 C语法限制不太严格,程序设计自由度大 虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 C语言允许直接访问物理地址,可以直接对硬件进行操作 因此C既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。 C语言程序生成代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低10へ20%。 C语言适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
二.C数据类型 1.所有的数据类型的定义.初始化; printf(“a = %p\n”,a);//a+1增加一个数组元素长度 printf("&a = %p\n",&a);//&a+1增加一个数组长度 右左法则: 1)确定a是一个变量,就要确定该变量保存什么类型的数据,保存什么类型的数据,它就是什么类型的变量; 2)确定a是一个指针变量,就要确定该指针变量保存什么类型的地址,保存什么类型的地址,它就是什么类型的指针变量; 3)确定a是一个数组,就要确定数组里的元素是什么类型的,元素是什么类型,它就是什么数组; 4)确定a是一个函数,就要确定函数的形参和返回值; int a; //一个整型数 int *a; //整型指针变量 int **a; //整型指针的指针变量 int a[10]; //整型数组 int *a[10]; //整型指针数组 int (*a)[10]; //数组指针变量,指向的是整型数组 int (*a)(int); //函数指针变量,指向的是形参为int,返回值为int int (*a[10])(int); //函数指针数组, 2.各种数据类型的字节长度(所占内存空间的大小)及取值范围; 基本类型字节长度: int 4 char 1 short 2 long 4 float 4 double 8 指针变量的字节长度是固定的!! <因为指针保存的是地址,地址在操作系统中是固定长度,长度是由操作系统位数决定的,32位系统,指针是4个字节;64位系统,指针是8个字节> Sizeof VS strlen: 1)sizeof是运算符,不是函数;作用:计算数据类型或者变量的所占内存空间的大小。 2)strlen是字符串库函数;作用:统计当前字符串的字符个数,不包含\0。 3)sizeof在计算字符串的大小时包含\0 3.signed\unsigned 三.输入输出 printf: <格式化控制符>//行缓冲,满一行才输出 scanf: 用scanf输入字符的时候需要先用getchar()将缓冲区里面的回车取走 getchar putchar gets 四.运算符.基本控制语句 1.i++; ++i; 逻辑运算符 && || ! 2.位运算 3.while for //已知循环次数用for,不知循环次数用while 4.if switch case 5.break continue 6.goto:异常处理 //函数传参从右边开始传参 |
本日开发中出现的问题汇总 | C语言代码不熟练。 |
本日未解决问题 | 无 |
本日开发收获 | 加强了C语言的编写能力和对问题的理解和解决能力。 |
其他 | 继续练习命令的使用方法。 |