资源描述
嵌入式c基础编程 第一天
第一步:
目的:了解有关c的发展方向、基础知识、基本结构
知识点提纲回顾(各概念的具体解释见后)
1程序:为了让计算机执行某些操作或解决某个问题而执行的一些列有序指令的集合(指令的逐条执行)。
2模块的优先级,由简入难,提高自信。
3算法:解决问题的具体方法和环节。
4流程图的概念:是算法的一种图形化表达方式。特点:直观、清楚、更有助于人们设计与理解算法。
5语言的正反特性:反汇编,操纵二进制,来看核心。
——知识扩展:触摸屏的重启是使用中断的循环原理。
6养成良好的编程习惯,规范化的书写格式括,使你的程序便于阅读、理解。具体做法如下:
⑴括号等同时成对匹配,代码的层次感要强。
⑵注释://单行注释 ;
多行注释方法一/* */ ,不推荐使用,多行注释中不能套用多行注释,由于只要碰到*/就退出注释。
多行注释方法二:代码不生效 #if 0 代码生效 #if 非0的数字
#endif #endif
注意:一定要顶格写,并且注释行后面不要跟任何东西
/* *****************************
作者:
创作日期:
程序描述:
****************************** */
⑶分门别类:源文献,头文献,配置文献分别放在一个文献夹内
7软件开发过程中分析问题大于编程,调试debug重于编码。
8 C语言开发过程:分析问题 –> 编制程序 -> 编译 –> 连接 -> 调试运营 -> 完毕
9 c语言的特点:
a) 结构化的程序设计语言:层次清楚,便于按模块化方式组织程序,易于调试和维护
b) 语句简洁:学习时入门相对容易,C 语言很好地总结了其他语言提出的程序库概念
c) 功能强大:既可用于系统软件的开发,也适合于应用软件的开发。
d)移植性好:只要对这种语言稍加修改,便可以适应不同型号机器或各类操作系统。
第二步:
目的:基础编程,可以简朴的编写代码。
思想准备:要从内存空间考虑问题。
1常量:在程序中保持不变的量。特点:程序中保持不变;程序内部频繁使用。常量的改变次数过多,可以使用宏定义——define。宏定义最佳使用大写。
2变量:通常使用变量来存储数据,值可以随便被改变。
3变量的命名需养成的习惯:除i,j,k外变量名不能少于三个字母,且尽量使用英文。
4变量的命名规则:
1)变量名可以由字母、数字和 _(下划线)组合而成
2)变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等
3)变量名必须以字母或 _(下划线)开头
4)变量名不能包含空白字符(换行符、空格和制表符称为空白字符)
5)C 语言中的某些词(例如 int 和 float 等)称为保存字,具有特殊意义,不能用作变量名
6)C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量
5具体实例分析
(1) 对的
Int width;
Int height=width=10;
因素:相称于先定义一个width 然后将width的值赋给height 所以无第一行就错了
(2) 对的
int width=1,height=12;
6基本数据类型的分类
数据类型
数值
非整形(float double)
非数值
整形(int, short int, long int)
char
7 基本数据类型详解
1)整型
名称
全称类型说明符
缩写类型说明符
位数
范围
整型
int
int
16
-32768 至 +32767
无符号整型
unsigned int
unsigned
16
0 至 65,535
短整型
short int
short
16
-32768 至 +32767
无符号短整型
unsigned short int
unsigned short
16
0 至 65,535
长整型
long int
long
32
-2,147,483,648 至 2,147,483,647
无符号长整型
unsigned long int
unsigned long
32
0 至 4,294,967,295
Eg:当范围超过时转换数据类型 如 int=365*24*60*60UL U为无符号 L为长整型。
2)非整型
float 在 C 语言中用于存储单精度浮点数。10-38 至 10+38 ,7位有效数字。
Double表达双精度浮点型。16 位有效数字。10-308至10+308.
Eg:浮点数是不拟定数——所以宏定义为#define ERSION 0.0000001 例子exercise.c
3)字符型 (char 占8个位,最多是255 )
Eg: uchar i;
For(i=0;i<=256;i++) 会产生越界 回到最初0的位置 陷入死循环
Eg:判断之间相差多少的简朴方法:
char ch;
ch - 32 ('a' - 'A')
ch >= '0' && ch <= '9'
ch - '0'
ch >= 'a' && ch <= 'z'
ch - ('a' - 'A')
ch >= 'A' && ch <= 'Z'
ch + ('a' - 'A')
printf("%d",ch)
int value = 'a'直接将a的ASCII值赋给value
Char虽然不是数值型但是可以当成数值型进行加减。
8输入:
%d 将参数按整数形式转换输出,相应参数应是int 类型
%ld 将参数按长整数形式转换输出,相应参数应是long 类型
%c 输出一个字符,相应参数应当是一个字符
%s 输出一个字符串,相应参数应当是一个字符串
%f 将参数按带小数点数形式输出,相应参数应是double 类型,默认情况下精确到 6 位小数
注意:输入的取地址符不要丢掉。 输入多个数之间指定用,等符号则在输出时要用同样的符号表达隔开,否则默认为空格隔开。
9 类型转换:
自动类型转换
原则:把表达范围小的类型的值转换到表达范围大的类型的值
short à int à long à float à double
强制类型转换
语法:(类型名) 变量或数值
Eg:float(x) 或 (float)x
Eg:int a = 5, b = 3;
float qu = float(a) / b; (float)a
10 getchar()很不稳定,获取输入的第一个字符 putchar()
第三步:了解运算符
1. 运算符的重要类型有:
算术运算符:+、-、*、/、%、++和--
赋值运算符:变量 = 表达式;
关系运算符:>=,<=,!=,= =,>,<
逻辑运算符:&&,||,!。连续的||中一旦一项成立,后面的都被短路,不再运算。假如&&中一项为0那么整个表达式都为0。
注意:复合赋值运算符 +=必须连接到一起。.
2逻辑运算符的优先级 :非最高、与另一方面、或最末
3各逻辑运算的特点:
与:有0则0
或:有1则1
4条件结构:
与运算,当第一个表达式为0,后面的表达式将不会再运算
代码:
1 #include "stdio.h"
2 int main()
3 {
4 #if 0
5 //定义长,宽,面积
6 int height,width;
7 int area;
8
9 //输入长和宽
10 printf("请输入长和宽:\n");
11 scanf("%d",&height);
12 scanf("%d",&width);
13
14 if (height>0&&width>0)
15 {
16 area=height*width;
17 printf("面积是:%d\n",area);
18 }
19 else
20 printf("输入错误\n");
21 #endif
22 #if 0
23 //float型数,不是一个拟定的值
24 int value=12;
25 float value2=12.6;
26 if(value==12)
27 printf("int data is ok\n");
28 else
29 printf("int data is err\n");
30 if(value2==12.6)
{
31 printf("float data is ok\n");
31 printf("float data is ok\n");
}
32 else
33 printf("float data is err\n");
34
35 return 1;
36 #endif
37 #if 0
38 //字符与ASIIC码转换关系 判断浮点数是否为0
39 #define EPSION 0.0000001
40 float value4;
41 if(value4>=-EPSION&&value4<=EPSION)
42 printf("%c+%d=%c\n",'2','2','2'+7);
43 printf("%c+%d=%c\n",'2','2','2'+'2');
44 #endif
45 #if 0
46 //printf输出格式化
47 int visitor_count=150;
48 printf("%d%d\n",visitor_count,visitor_count);
49 printf("%8d%8d\n",visitor_count,visitor_count);
50 printf("%-8d%-8d\n",visitor_count,visitor_count);
51 visitor_count=1500000;
52 printf("%3d%3d\n",visitor_count,visitor_count);
53 #endif
54 #if 0
55 //++的运算优先级
56 int num=5;
57 printf("num++->%d,%d\n",num++*num++,num);
58 num=5;
59 printf("++num->%d,%d\n",++num*++num,num);
60 num=5;
61 printf("++num*num++->%d,%d\n",++num*num++,num);
62 num=5;
63 printf("num++*++num->%d,%d\n",num++*++num,num);
64 num=5;
65 printf("num++->%d,%d\n",num++*num++*num++,num);
66 num=5;
67 printf("++num->%d,%d\n",++num*++num*++num,num);
68 #endif
69 #if 0
70 int a=5,b=3,c=25,d=12;
71 float qu;
72 int re,in,de;
73 qu=(float)a/b; //强制转换为浮点型
74 re=a%b; //b必须为整型
75 in=++c;
76 de=--d;
76 de=--d;
77 printf("商为:%f\n",qu);
78 printf("余数为:%d\n",re);
79 printf("加1后为:%d\n",in);
80 printf("减1后为:%d\n",de);
81 #endif
82 #if 0
83 //同类型有符号运算,强制转换为无符号!
84 unsigned int value=6;
85 int index=-20;
86 if(value+index>6)
87 printf("it is > 6\n");
88 else
89 printf("it is < 6\n");
Unsigned int index2 = 6
90 char value2= -20;
91 if(value2+index2>6)
92 printf("it is > 6\n");
93 else
94 printf("it is < 6\n");
95 #endif
96 #if 0
97 //判断所输入字符是否为小写字母
98 char ch;
展开阅读全文