程序设计语言的发展
(1)第一代的机器语言,由0和1组成的,这是因为CPU和内存是电路组成的。
(2)第二代的汇编语言,使用了一些简洁的英文字母和一些有含义的字符串来替代一些操作,例如:ADD、SUB、MOV等,
但是只有在资源首先的嵌入式环境或与硬件相关的程序设计过程中,汇编语言才会作为首选语言。
(3)第三代的C语言既有高级语言的通用性又有底层语言的高效性,C程序先翻译成汇编程序,然后汇编程序翻译成机器程序。
基本数据类型和表达式
一、 基本语法单位
-
基本符号(1)数字:0~9 (2)字母:A~Z 、a~z (3)特殊符号:+ - * \ / =等
-
关键字:32个关键字(auto break case char cons continue default do double else enum extern float for goto if int long register return short sigend sizeof static struct switch typedef union unsigned void volatile while ) 常用特定字符:Include define undef ifdef ifndef endif line
-
标识符:(1)以英文字母或字母下划线开头
(2)其他部分可以由字母、数字、下划线组成
(3)大、小字母含义不一样
(4)不能以关键字为标识符 -
数据类型:
-
常量和变量:
(1)整型常量:
【1】十进制常数:±n
【2】八进制常数:±0n
【3】十六进制整数:±0xn
【4】长整型整数:12345L
(2)浮点型常量:
. 57 .0075e2 1575E-2 154e+2
字母E和e之前必须有数字,E或e后面的指数必须为整数
(3)字符常量:用一对单括号引起来的单个字符:‘a’ ‘9’ ‘!’
单引号中的字符不能是单引号,和反斜杠。字符是按其对应的ASC值储存的。
例子:‘a’-32 = 65 ; ‘9’ -‘0’ = 9
(4)字符串常量:用一对双引号括起来的字符串,字符串不能是双引号和反斜杠。
例子:"china"后面相当于加\0,所以一共占6个字节
(5)转义字符: \a 杠铃 7
\b 退格 8
\f 换页 12
\n 换行 10
\r 回车 13
\t 水平制表 9
\v 垂直制表 11
\ 反斜杠 92
\❓ 问号字符 63
\’ 单引号字符 39
" 双引号字符 34
\0 空字符 0
\o[0[0]] 八进制对应的ASC2字符
\xh[h] 十六进制对应的ASC2字符
注意:
【1】转义字符只能使用小写字母,每个转义字符只能看作一个字符
【2】\v和\f换页符对屏幕没影响,对打印机有影响
【3】使用不可打印字符,通常用转义字符表示
【4】’\n’只是回到行首,不改变光标的纵坐标;换行是换行,不改变横坐标
【5】’\0’表示NULL字符,值为0,'0’的ASC2值为48,空格字符ASC2值32
(6)符号常量:
#define pi 3.1415926 -
变量:所有变量使用前先定义
(1)整形变量:int a; unsigned int b;
(2)浮点型变量:float x ; double y;
(3)字符变量:char c1; -
变量初始化:int a =b =c =3; × int a =3;b =3;c =4; int a=4;b;c=5; double a =5/6
-
表达式和运算符:
(1)算术运算符:+ - * / % – ++ 例子: int i =3 ;printf ("%d",-i++)输出为3,然后加为4
(2)赋值运算符:int a,b,c ; a=b=c=4;
(3)关系运算符:< <= > >= == !=
(4)逻辑运算符:&& || !
(5)位运算符:正能作于整形操作数,只能用于带符号或无符号的char、short、int、long类型
& | ^ ~ << >>
(6)符号运算符:用,把表达式连接起来
a=35;45
(7)条件运算符:min = (a<b)? a:b 相当于条件判断
(8)运算符优先级: -
各类型数值之间的混合运算:char short→int→unsigned int→long→double⬅