1、文件处理过程:
预处理--编译--汇编--链接。
预处理:处理#include操作和宏定义替换等。
编译: 预处理后的文本进到下一步-编译,编译产生汇编代码,送到汇编阶段。
汇编:产生目标文件--输出的结果可以用于链接的目标代码,目标代码文件已经是可以执行的二进制代码文件。
链接:把汇编产生的目标文件与其他目标文件链接处理产生可以执行文件。
2、ASCII码
American Standard Code for Information Interchange。ASCII码用8位二进制数(一个字节)来表示一个字符。计算机存储的不是字符本身,而是将该字符所对应的ASCII 码放到存储单元中。'A'-65 'B'-66。
3、字符常量
‘5’ -->10进制53
4、转义字符以反斜杠“\”开头,后跟一个或者多个字符,转义字符具有特定的含义,不同于单引号内部字符原有的意义。故称为转义字符。printf()'\n'。
5、字符串常量
“Latitude”,字符串常量所占的内存字节数等于字符串中字节数加1,最后用'\0'作为字符串的结束标志,‘\0'的ASCII码值为0.c语言没有专门的字符串变量,用一个字符串数组来存放一个字符串常量。
6、++i 自增以后再参与其他运算
i++ 参与其他运算后,i的值在自增1
如:int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);//p=15
q=(++i)+(++i)+(++i);//q=24
//i=8,j=8
7、C语言数据输入语句
scanf函数和getchar()
scanf("%d%d",&a,&b);
8、外部变量
a.c文件中
int a,b;//全局变量
b.c文件中
extern int a,b;//外部变量声明
9、内部函数和外部函数
a、内部函数(静态函数):如果一个源文件中定义的函数只能被文件中的函数调用,而不能被同一个程序其他文件中的函数调用 static int f(int a)
b、外部函数:整个程序都有效 extern int f(int a,int b)
如果函数中没有显示说明static还是extern的话,默认为extern
10、好好利用define定义常量,提高程序的可阅读性,定义宏习惯用大写来表示。
11、条件编译
#ifdef
#esle
#endif
#ifdef语句不同于if语句,它的规则是静态的,在预处理也就是编译前就决定了。
12、C语言指针
a、内存单元的编号,该编号也叫做地址(指针),指针变量是存储内存地址的变量,指针变量通常称为指针。
b、用字符串指针指向一个字符串 char * string="hello";
c、指针 + 1: 表示指针变量指向下一个数据元素的起始地址。
d、指针与数组: C编译系统将a[i]转换为*(a+i)处理的,先计算元素地址,用指针变量直接指向元素,所以用指针操作数组效率更高。P++不用重新计算地址。
13、struct、union、emun
14、位运算
原码--反码--补码
& 与
| 或
^ 异或:相同为0,不同为1,用于交换两个数的值。
~ 取反:是所以为运算优先级最高的。
<< 左移:用于快速乘法 2的N次幂
>> 右移:除法 2的幂